Southampton 3 - 1 Walsall
Southampton clinched promotion to the Championship with victory over Walsall, who survived by one point.
Guly do Prado gave Saints the lead with a fine shot after Walsall were caught in possession.
David Connolly quickly doubled the hosts' advantage with a curled finish before Julian Gray bent home magnificently for the Saddlers.
Saints sub Alex Chamberlain cut inside and hit an unstoppable shot past visiting keeper Jimmy Walker.
The result secures Southampton's return to the second tier after two years in League One.
Despite losing, Walsall, who were bottom of the table when Chris Hutchings was sacked in January , retained their League One status after Dagenham & Redbridge were comprehensively beaten by Peterborough .
Southampton dominated the early proceedings with Do Prado twice forcing saves from Saddlers keeper Walker and Rickie Lambert and Dean Hammond both going close.
It was Do Prado who gave his side a deserved lead when he fired home after Jordan Cook gave the ball away cheaply.
Just minutes later Connolly made it 2-0 when he checked inside and beat Walker with a clever finish at the near post.
Gray sent a long range effort wide and Andy Butler headed wide from a corner as the Saddlers began to mount a recovery before the interval.
It was Gray who put the Saddlers back in the contest with a superb goal, ghosting past two defenders before unleashing a superb shot past Kelvin Davies in the Saints goal.
Walsall picked up where they left off after the break, Jon Macken firing into the side-netting.
Chamberlain almost had an instant impact after coming on when his shot cannoned back off the Walsall upright.
Walsall substitute Will Grigg was next to be frustrated by the woodwork when his left-foot volley hit the outside of the post.
Macken thought he had equalised for the visitors when he tapped in following a corner but an offside flag meant that celebrations were short-lived.
Moments later Chamberlain made the points safe.
He received a Lambert pass on the wing and ran past two defenders before thundering home a great shot that gave Walker no chance.
Walker made two fantastic late saves to deny Chamberlain as Saints looked to put some gloss on the result as the Saddlers ran out of steam.
But it mattered little as both teams got what they set out to achieve at the start of the day.
Southampton manager Nigel Adkins told BBC Radio Solent:
"It was a great day to celebrate. There was a fantastic atmosphere in the stadium and I thought the players played some good football as well.
"It was nice when we came up on the gantry. These are great memories, when you see the whole pitch covered in red and white supporters with great smiles on their faces.
"It's been great to sit back and look at people's faces and see how happy they are.
"(Next year) there will be additions, and we'll look to bring quality in to the club to join an already excellent group of players."
Live Text Commentary
Full Time The referee blows his whistle to end the game.90:00 +2:26
The offside flag is raised against Adam Lallana. Jimmy Walker takes the direct free kick.90:00 +2:00
Inswinging corner taken by Adam Lallana.90:00 +0:53
Header by Richard Chaplow from deep inside the penalty area misses to the left of the goal.89:47
The ball is crossed by Dan Harding.89:21
Adam Lallana takes a short corner.88:53
Header from deep inside the area by Andy Butler goes over the bar.87:57
Inswinging corner taken from the right by-line by Emanuel Jorge Ledesma.86:33
Effort from inside the six-yard box by Alex Oxlade-Chamberlain goes wide left of the target.83:44
Free kick awarded for an unfair challenge on Alex Oxlade-Chamberlain by Julian Gray. Free kick taken by Richard Lambert.82:02
Richard Chaplow gives away a free kick for an unfair challenge on Julian Gray. Julian Gray fires a strike on goal direct from the free kick.80:55
Alex Oxlade-Chamberlain takes a shot. Save made by Jimmy Walker. David Connolly takes a shot. Jimmy Walker makes a save.77:51
The ball is crossed by Frazer Richardson.77:19 Booking
Booking Julian Gray is cautioned.76:39
Alex Oxlade-Chamberlain crosses the ball, clearance by Andy Butler.76:07
Free kick awarded for a foul by Andy Butler on David Connolly. Free kick taken by Jose Fonte.76:07 Substitution
Substitution Ryan Dickson goes off and Dan Harding comes on.72:33
Ryan Dickson sends in a cross.71:41
Radhi Jaidi challenges William Grigg unfairly and gives away a free kick. Free kick taken by Tom Williams.71:10
Shot from outside the box by Richard Chaplow goes wide right of the target.
Matthew Richards challenges Adam Lallana unfairly and gives away a free kick. Free kick taken by Richard Chaplow.69:48 Substitution
Substitution Darren Byfield joins the action as a substitute, replacing Jonathan Macken.69:48 Substitution
Substitution Morgan Schneiderlin goes off and Richard Chaplow comes on.69:48 Booking
Booking Caution for Matthew Richards.68:33
Radhi Jaidi concedes a free kick for a foul on William Grigg. Indirect free kick taken by Richard Taundry.68:33 Booking
Booking Radhi Jaidi shown a yellow card.67:04 Goal scored
Goal! - Alex Oxlade-Chamberlain - Southamp'n 3 - 1 Walsall Alex Oxlade-Chamberlain gets on the score sheet with a goal from just inside the area to the top left corner of the goal. Southampton 3-1 Walsall.65:56
Corner taken left-footed by Matthew Richards from the right by-line, Marc Laird takes a shot. Kelvin Davis makes a save. The referee blows for offside against Jonathan Macken. Kelvin Davis restarts play with the free kick.64:57
Free kick awarded for an unfair challenge on Tom Williams by Alex Oxlade-Chamberlain. Free kick taken by Tom Williams.63:01
Morgan Schneiderlin takes a shot. Save by Jimmy Walker.61:23
Emanuel Jorge Ledesma takes a shot. Save made by Kelvin Davis. Shot from inside the six-yard box by William Grigg hits the post.59:21 Substitution
Substitution Jordan Cook goes off and Emanuel Jorge Ledesma comes on.58:36
Shot by Alex Oxlade-Chamberlain from deep inside the penalty box bounces off the post. Effort from close in by David Connolly goes wide left of the target.57:34
Jonathan Macken has an effort at goal from deep inside the area missing to the right of the goal.57:34 Substitution
Substitution Guly Do Prado goes off and Alex Oxlade-Chamberlain comes on.57:01
William Grigg sends in a cross, Radhi Jaidi manages to make a clearance.54:34
Julian Gray is flagged offside by the assistant referee. Kelvin Davis takes the free kick.53:08
Free kick awarded for an unfair challenge on Oliver Lancashire by Morgan Schneiderlin. Jimmy Walker restarts play with the free kick.51:46
The referee blows for offside against Jonathan Macken. Kelvin Davis takes the free kick.48:44
David Connolly produces a left-footed shot from deep inside the area which goes wide of the left-hand post.47:05
A cross is delivered by Matthew Richards.46:07
Free kick awarded for a foul by Ryan Dickson on Julian Gray. The free kick is swung in left-footed by Matthew Richards, Guly Do Prado manages to make a clearance.45:36
Adam Lallana crosses the ball, Richard Taundry gets a block in.45:01
The second half has started.45:00 +3:57 Half time
Half Time The half-time whistle blows.45:00 +2:15 Goal scored
Goal! - Julian Gray - Southamp'n 2 - 1 Walsall A goal is scored by Julian Gray from just outside the box to the top left corner of the goal. Southampton 2-1 Walsall.45:00 +1:07
Ryan Dickson sends in a cross, David Connolly takes a shot. Jimmy Walker makes a comfortable save.43:43
Inswinging corner taken by Matthew Richards from the right by-line, clearance by Frazer Richardson.41:46
Centre by Marc Laird, Ryan Dickson gets a block in. Corner from the right by-line taken by Matthew Richards, Close range header by Andy Butler goes wide of the left-hand upright.40:48
The ball is swung over by Adam Lallana, Richard Taundry makes a clearance.39:28
Julian Gray produces a left-footed shot from outside the penalty box and misses left.34:40
The ball is sent over by Frazer Richardson, save by Jimmy Walker. Jordan Cook fouled by Morgan Schneiderlin, the ref awards a free kick. Richard Taundry takes the indirect free kick.34:40 Substitution
Substitution Marco Gbarssin leaves the field to be replaced by William Grigg.33:07
Frazer Richardson takes a shot.31:46
Dean Hammond takes a shot. Save by Jimmy Walker. Guly Do Prado takes a outswinging corner.30:25
Julian Gray challenges Morgan Schneiderlin unfairly and gives away a free kick. Jose Fonte restarts play with the free kick.28:17
Adam Lallana provided the assist for the goal.28:17 Goal scored
Goal! - David Connolly - Southamp'n 2 - 0 Walsall Goal scored by David Connolly from just inside the penalty area to the bottom left corner of the goal. Southampton 2-0 Walsall.26:34
Adam Lallana takes a shot. Blocked by Andy Butler.25:04 Goal scored
Goal! - Guly Do Prado - Southamp'n 1 - 0 Walsall Guly Do Prado gets on the score sheet with a goal from the edge of the penalty box to the bottom left corner of the goal. Southampton 1-0 Walsall.23:27
Ryan Dickson gives away a free kick for an unfair challenge on Jonathan Macken. Indirect free kick taken by Richard Taundry.22:52
Foul by Jonathan Macken on Radhi Jaidi, free kick awarded. Jose Fonte takes the direct free kick.20:55
Jordan Cook delivers the ball, Frazer Richardson manages to make a clearance. Outswinging corner taken left-footed by Julian Gray from the left by-line.18:55
Richard Lambert sends in a cross, Guly Do Prado takes a shot. Save made by Jimmy Walker.16:17
Adam Lallana crosses the ball, Tom Williams makes a clearance.14:51
Foul by Matthew Richards on Guly Do Prado, free kick awarded. Free kick taken by Frazer Richardson.14:28
Guly Do Prado produces a cross, Andy Butler manages to make a clearance.11:28
The ball is delivered by Guly Do Prado, clearance by Richard Taundry.9:38
Richard Taundry sends in a cross.6:16
Dean Hammond takes a shot from just inside the penalty box which clears the crossbar.4:35
Matthew Richards gives away a free kick for an unfair challenge on Jose Fonte. Kelvin Davis takes the free kick.4:10
The ball is delivered by Frazer Richardson.1:38
Effort on goal by Richard Lambert from just inside the penalty box goes harmlessly over the target.0:57
Guly Do Prado takes a shot. Save by Jimmy Walker. Corner taken by Guly Do Prado from the right by-line to the near post, Marco Gbarssin manages to make a clearance.0:00
The referee gets the game started.
Live data and text provided by our data suppliers