Reading all but secured promotion to the Premier League with a victory over their nearest rivals Southampton in an enthralling encounter at St Mary's.
Jason Roberts's header put Reading ahead with Rickie Lambert's deflected strike levelling before two goals from Adam Le Fondre sealed the win.
Victory opens up a three-point gap for Reading at the top of the Championship.
And with three games to go, the Royals hold a nine-point advantage over third-placed West Ham, who have four to play.
It would take a monumental slip-up and some very unfortunate results elsewhere for Reading to miss out on promotion now, while Southampton face a nervous battle with the Hammers for the second automatic place.
But Nigel Adkins' side can take huge credit for the way they played and if they perform like they did tonight in each of their final three games there will not be a team that can live with them.
Reading's victory was secured courtesy of some fine goalkeeping from Adam Federici and two moments of magic from winger Jimmy Kebe, who created two of the goals.
Southampton headed into the game top on goal difference and the contest pitted the league's best attack against the division's most frugal defence.
Royals red-hot form
- Reading have lost once since 28 January, a sequence of 16 games, winning 14 of those
- They have won their last five
- They are now nine points clear of West Ham in third
Saints started brilliantly but found Federici in fine form, the Australian keeping out Lambert and Adam Lallana in the opening minutes.
It was Southampton at their free-flowing best with Lallana pulling the strings in midfield and Billy Sharp's movement proving a constant menace for the visitors.
Lambert had a golden opportunity to put Saints ahead but his close-range header was well kept out by Federici and moments later Reading caught their hosts with a classic sucker-punch.
For the first time in the game, Kebe found space on the right wing to send in a fierce cross and Roberts was there to power home a header from three yards.
Saints came firing back, Lallana again going close with a delightful chip, but for all their endeavour they could not beat Federici.
Roberts was proving a useful outlet for Reading but their moments in the Saints half were few and far between and just before the break Lambert should have put the hosts level but headed over from six yards.
It took just three minutes for Saints to level after the break and unsurprisingly it was Lambert who scored.
The Championship's player of the year combined brilliantly with Sharp before firing a deflected half-volley past Federici. The goal spurred Saints on and soon after Richard Chaplow warmed the palms of Federici with a fierce drive from the right.
Lambert and Sharp combined again before the latter sent a low drive past Federici's right-hand post while Lallana also headed wide from close range.
But as in the first half, Reading made Southampton pay for their wastefulness in front of goal and Le Fondre found space in the Saints box to fire home after good work from Kebe on the right.
Reading were superb in defence as Saints pursued a second equaliser, Steve de Ridder firing straight at Federici late on.
And in the closing moments, Le Fondre sealed the victory after rounding Kelvin Davis before firing into the empty net to send the away fans into delirium.
- 01 Davis
- 06 Fonte
- 12 Butterfield
- 13 Fox
- 26 Hooiveld
- 08 Cork
- 14 Hammond (Guly - 76' Booked )
- 18 Chaplow Booked (De Ridder - 53' )
- 20 Lallana
- 07 Lambert
- 11 Sharp
- 02 Richardson
- 03 Harding
- 16 Martin
- 10 Guly
- 33 De Ridder
- 01 Federici
- 05 Pearce
- 17 Gorkss
- 23 Harte
- 24 Cummings
- 07 Tabb (Le Fondre - 64' )
- 11 McAnuff
- 14 Kebe
- 26 Mullins
- 10 Hunt
- 33 Roberts (Afobe - 77' )
- 12 McCarthy
- 06 Gunnarsson
- 09 Le Fondre
- 18 Church
- 51 Afobe
Live Text Commentary
Full Time The referee blows for the end of the match.90:00 +1:58 Goal scored
Goal! - Adam Le Fondre - Southamp'n 1 - 3 Reading Adam Le Fondre finds the back of the net with a goal from close range to the bottom left corner of the goal. Southampton 1-3 Reading.89:28
Danny Butterfield crosses the ball.87:34
Alex Pearce takes the free kick.87:34 Booking
Booking Guly Do Prado goes into the referee's book for unsporting behaviour.87:29
Guly Do Prado is adjudged to have handled the ball.87:14
A cross is delivered by Steve De Ridder, Kaspars Gorkss manages to make a clearance.85:31
Adam Lallana is caught offside. Adam Federici restarts play with the free kick.84:49
Guly Do Prado takes a shot. Save by Adam Federici.83:43
Steve De Ridder takes a shot. Save by Adam Federici.80:48
Inswinging corner taken by Adam Lallana from the left by-line played to the near post, Richard Lambert takes a shot. Alex Pearce gets a block in.80:41
The ball is sent over by Danny Butterfield, Shaun Cummings makes a clearance.80:20
Danny Butterfield produces a cross, clearance made by Alex Pearce.79:23
Daniel Fox crosses the ball, clearance by Ian Harte.79:06
The ball is crossed by Steve De Ridder, Alex Pearce makes a clearance.77:38
Corner from left by-line taken by Jobi McAnuff.77:28
Jobi McAnuff takes a shot. Guly Do Prado gets a block in.76:38 Substitution
Substitution Benik Afobe replaces Jason Roberts.75:17 Substitution
Substitution (Southampton) makes a substitution, with Guly Do Prado coming on for Dean Hammond.75:01
Danny Butterfield takes a shot. Save by Adam Federici.
Corner taken by Daniel Fox, Alex Pearce makes a clearance.73:38
Centre by Steve De Ridder, Ian Harte gets a block in.71:31
Assist on the goal came from Jimmy Kebe.71:31 Goal scored
Goal! - Adam Le Fondre - Southamp'n 1 - 2 Reading Adam Le Fondre finds the back of the net with a goal from inside the penalty box to the top right corner of the goal. Southampton 1-2 Reading.70:36
Jack Cork gives away a free kick for an unfair challenge on Jobi McAnuff. Ian Harte takes the direct free kick. Effort on goal by Jobi McAnuff from long range goes harmlessly over the bar.69:40
Billy Sharp concedes a free kick for a foul on Kaspars Gorkss. Direct free kick taken by Adam Federici.69:07
Centre by Danny Butterfield, Headed effort from deep inside the area by Adam Lallana misses to the left of the goal.66:56
Daniel Fox takes the inswinging corner, clearance made by Alex Pearce.66:48
Steve De Ridder sends in a cross, blocked by Ian Harte.65:37
Dean Hammond concedes a free kick for a foul on Adam Le Fondre. Direct free kick taken by Ian Harte.64:55
Danny Butterfield sends in a cross, Kaspars Gorkss makes a clearance.63:10 Substitution
Substitution Adam Le Fondre on for Jay Tabb.61:28
Free kick awarded for an unfair challenge on Kaspars Gorkss by Richard Lambert. Direct free kick taken by Alex Pearce.60:40
Richard Lambert has an effort at goal from outside the area missing to the wide left of the goal.60:07
The ball is crossed by Shaun Cummings, save by Kelvin Davis.56:42
Jason Roberts crosses the ball, Jos Hooiveld makes a clearance.54:06
A cross is delivered by Daniel Fox, Jimmy Kebe manages to make a clearance.53:58
Steve De Ridder crosses the ball, clearance by Alex Pearce.53:48
The ball is sent over by Steve De Ridder, clearance by Ian Harte.51:09 Substitution
Substitution (Southampton) makes a substitution, with Steve De Ridder coming on for Richard Chaplow.51:09
Richard Chaplow takes a shot. Adam Federici makes a save. Daniel Fox takes a inswinging corner from the right by-line played to the near post, Header from close in by Jos Hooiveld misses to the left of the target.50:35
The ball is swung over by Daniel Fox, Ian Harte manages to make a clearance.50:25
Centre by Adam Lallana, Jay Tabb makes a clearance.47:09
The assist for the goal came from Billy Sharp.47:09 Goal scored
Goal! - Richard Lambert - Southamp'n 1 - 1 Reading Richard Lambert finds the net with a goal from the edge of the area to the top left corner of the goal. Southampton 1-1 Reading.46:37
The offside flag is raised against Jason Roberts. Indirect free kick taken by Kelvin Davis.45:31
Foul by Richard Chaplow on Jobi McAnuff, free kick awarded. Ian Harte restarts play with the free kick.45:01
The referee gets the second half started.45:00 +2:07 Half time
Half Time The ref blows to end the first period.45:00 +1:33
The official flags Jason Roberts offside. Danny Butterfield restarts play with the free kick.45:00 +1:12
Danny Butterfield sends in a cross, save by Adam Federici.45:00 +0:06
Daniel Fox produces a cross, Richard Lambert has a headed effort at goal from close in which goes wide left of the goal.42:54
Richard Chaplow delivers the ball, Adam Lallana takes a shot. Save by Adam Federici.42:03
The assistant referee signals for offside against Noel Hunt. Jose Fonte takes the free kick.40:38
Foul by Jose Fonte on Jason Roberts, free kick awarded. Ian Harte takes the free kick.39:59
The referee penalises Richard Chaplow for handball. Adam Federici takes the direct free kick.39:52
Adam Lallana crosses the ball.39:40
The ball is swung over by Danny Butterfield.37:50
Unfair challenge on Adam Lallana by Jay Tabb results in a free kick. Danny Butterfield takes the free kick.36:29
Adam Federici takes the direct free kick.36:29 Booking
Booking Caution for Richard Chaplow.35:59
Richard Chaplow concedes a free kick for a foul on Adam Federici.34:15
Alex Pearce challenges Richard Lambert unfairly and gives away a free kick. Daniel Fox takes the free kick.31:56
Adam Lallana fouled by Shaun Cummings, the ref awards a free kick. Jack Cork takes the free kick.31:30
Noel Hunt crosses the ball.29:33
Jason Roberts is caught offside. Jose Fonte takes the indirect free kick.28:36
Adam Lallana has an effort at goal from outside the penalty box missing to the wide left of the goal.26:39
Richard Chaplow crosses the ball.26:33
A cross is delivered by Daniel Fox.24:44
Inswinging corner taken by Adam Lallana from the left by-line played to the near post, Header on goal by Jos Hooiveld from inside the box goes harmlessly over the target.24:25
Adam Lallana takes a shot. Adam Federici makes a save.22:21
Foul by Richard Chaplow on Jason Roberts, free kick awarded. Direct free kick taken by Ian Harte.22:10
Adam Lallana sends in a cross.21:30
A cross is delivered by Richard Chaplow, clearance by Alex Pearce.20:19
Billy Sharp challenges Kaspars Gorkss unfairly and gives away a free kick. Direct free kick taken by Ian Harte.18:49
The assist for the goal came from Jimmy Kebe.18:49 Goal scored
Goal! - Jason Roberts - Southamp'n 0 - 1 Reading Jason Roberts finds the net with a headed goal from close range. Southampton 0-1 Reading.17:42
Centre by Danny Butterfield, Richard Lambert takes a shot. Adam Federici makes a save. Effort from long range by Danny Butterfield goes wide right of the target.16:57
Daniel Fox delivers the ball, clearance made by Kaspars Gorkss.14:28
Adam Lallana takes a shot. Save made by Adam Federici.13:13
Inswinging corner taken by Adam Lallana from the left by-line, clearance made by Alex Pearce. Alex Pearce fouled by Jose Fonte, the ref awards a free kick. Free kick taken by Adam Federici.12:59
Adam Lallana takes a shot. Save made by Adam Federici.12:50
The ball is delivered by Adam Lallana.12:14
Adam Lallana takes the inswinging corner, Alex Pearce manages to make a clearance.11:07
Inswinging corner taken left-footed by Ian Harte from the right by-line, Header from deep inside the area by Alex Pearce goes over the bar.9:21
Adam Lallana sends in a cross, Shaun Cummings gets a block in.8:10
Richard Chaplow sends in a cross, clearance made by Kaspars Gorkss.5:01
Unfair challenge on Danny Butterfield by Jason Roberts results in a free kick. Jose Fonte restarts play with the free kick.4:27
Noel Hunt is flagged offside by the assistant referee. Kelvin Davis takes the indirect free kick.3:42
Unfair challenge on Jason Roberts by Jose Fonte results in a free kick. Ian Harte takes the free kick.2:51
Richard Lambert takes a shot. Adam Federici makes a save.0:46
The assistant referee signals for offside against Jason Roberts. Kelvin Davis takes the free kick.0:00
The ref blows the whistle to start the match.
Live data and text provided by our data suppliers