Three goals in the final eight minutes gave Reading an unlikely win over West Brom at the Madejski Stadium.
Romelu Lukaku had scored either side of half-time to give the dominant Baggies a deserved lead.
But Jimmy Kebe pulled one back before Adam Le Fondre's penalty drew the home side level with two minutes to go.
Pavel Pogrebnyak dived in from close range to put Reading ahead on 90 minutes and they hung on for only their third win of the season.
The dramatic finale keeps Reading in 19th position, two points clear of QPR at the foot of the Premier League table, while West Brom will wonder how they failed to earn anything from a game they controlled until the final stages.
Royals manager Brian McDermott handed a debut to Portuguese midfielder Daniel Carrico, who signed from Sporting Lisbon at the start of January.
A run of two wins in the last eight games had seen West Brom slip back from a high point of third in the table, but despite the recent wobble in form, the Baggies were already 11 points better off than at the same stage last season.
What an amazing turnaround, West Brom looked so comfortable but then conceded three goals in eight minutes at the end with the winner from Pavel Pogrebnyak that turned the game completely on its head. Those are three priceless points for Reading.
The home side started brightly and ensured much of the opening phase was played in West Brom's half, but despite a series of corners West Brom's defence prevented goalkeeper Ben Foster from seeing much of the ball.
But it was Foster's opposite number, Adam Federici, who made the game's first save of note after a quarter of an hour, palming away a shot that James Morrison had hit on the half-volley from the edge of the box.
The chance was a warning note from the visitors, who took the lead a minute later when Morrison turned provider. The Scot combined with Lukaku to peel away to the left before placing a low cross that the on-loan Chelsea striker converted from inside the six-yard box for his eighth goal of the season.
Reading responded with urgency, but without enough guile or craft to threaten Foster. Jimmy Kebe's poor first touch to a long clearance allowed the West Brom defence to recover.
Carrico's debut came to abrupt end at half-time when McDermott replaced him with Garath McCleary, but the change made little difference to the confident visitors, and especially Lukaku.
The Belgian striker saw a last-ditch block from Adrian Mariappa stop him from hitting the target, and he had the ball in the net a minute later when he stretched to poke the ball home, only to be flagged for offside.
Lukaku hit the post and the bar before finally getting his second, racing on to a clearance from defence to shoot low past Federici's left hand to put West Brom within reach of all three points.
But Reading transformed in the latter stages to grab a much-needed win. Kebe stooped low to head home McCleary's cross, and it was Kebe who was clumsily fouled by Jonas Olsson to give substitute Le Fondre the chance to equalise from 12 yards.
Spurred on by a raucous home crowd, Reading sealed their comeback in the final minute of normal time when Pogrebnyak bundled in a knock-down from Alex Pearce past Foster.
Leaving it late
Reading have scored the highest proportion of goals in the final 15 minutes of Premier League games this season - 35%.
Just a few minutes earlier Reading had been set to slip to the foot of the table, but the turnaround now puts them three points short of Aston Villa in the relegation zone.
Reading manager Brian McDermott said: "I'm looking forward to watching the last eight minutes of that game! It just sums up the atmosphere around the Madejski Stadium, the crowd really got us back into the game. Once Jimmy scored, they were fantastic.
"That was a big three points today, I thought the character and resilience of our players was excellent.
"We were a little bit flat in the first half, they hit the bar and the post, but we stayed in the game and showed quality when we needed to."
West Brom manager Steve Clarke said: "We went from complete control of the game to somehow losing a game we should have won comfortably.
"I'm a little bit shell-shocked. For 81 minutes we had so much control of the game, we created chances, hit the crossbar and post, and scored two good goals.
"We were so far in front you could not see the end to the game coming. But football can sometimes be a strange game."
- 01 Federici
- 02 Gunter
- 05 Pearce
- 06 Mariappa
- 23 Harte
- 29 Daniel Carrico (McCleary - 46' )
- 04 Karacan (Le Fondre - 65' )
- 11 McAnuff
- 14 Kebe
- 20 Guthrie
- 07 Pogrebnyak Booked
- 41 Taylor
- 15 Morrison
- 24 Cummings
- 28 Akpan
- 09 Le Fondre
- 10 Hunt
- 12 McCleary
West Bromwich Albion
- 01 Foster
- 03 Olsson
- 06 Ridgewell
- 23 McAuley
- 28 Jones Booked
- 07 Morrison
- 11 Brunt
- 14 Thomas
- 15 Thorne
- 17 Dorrans (Rosenberg - 79' )
- 20 Lukaku
- 13 Myhill
- 04 Popov
- 25 Dawson
- 30 Tamas
- 10 El Ghanassy
- 08 Rosenberg
- 36 Nabi
Live Text Commentary
Full Time The referee brings the game to a close.90:00 +2:05
Jonas Olsson has an effort at goal from just outside the area which goes wide of the left-hand post.90:00 +1:00
Pavel Pogrebnyak gives away a free kick for an unfair challenge on Jonas Olsson. Free kick taken by Chris Brunt.90:00 +0:08 Booking
Booking Pavel Pogrebnyak receives a caution.89:20
Assist on the goal came from Alex Pearce.89:20 Goal scored
Goal! - Pavel Pogrebnyak - Reading 3 - 2 West Brom Pavel Pogrebnyak gets on the score sheet with a goal from inside the six-yard box high into the middle of the goal. Reading 3-2 West Brom.88:49
Foul by Jerome Thomas on Jobi McAnuff, free kick awarded. Free kick taken by Ian Harte.87:49
Assist by Jimmy Kebe.87:49 Goal scored
Goal! - Adam Le Fondre - Reading 2 - 2 West Brom Adam Le Fondre scores a placed penalty. Reading 2-2 West Brom.86:30
Penalty awarded for a foul by Jonas Olsson on Jimmy Kebe.85:39
Ian Harte delivers the ball, clearance by Gareth McAuley.84:52
Romelu Lukaku produces a cross, save made by Adam Federici.83:52
Danny Guthrie takes a shot. Comfortable save by Ben Foster.83:38
The ball is crossed by Garath McCleary.83:05
Unfair challenge on Danny Guthrie by Chris Brunt results in a free kick. Ian Harte restarts play with the free kick.82:43
The ball is swung over by Garath McCleary, Gareth McAuley manages to make a clearance.82:03
Liam Ridgewell gives away a free kick for an unfair challenge on Jimmy Kebe. Chris Gunter takes the direct free kick.81:19
Assist by Garath McCleary.81:19 Goal scored
Goal! - Jimmy Kebe - Reading 1 - 2 West Brom Jimmy Kebe grabs a headed goal from close in. Reading 1-2 West Brom.81:09
The ball is swung over by Garath McCleary,
Centre by Jimmy Kebe.78:09 Substitution
Substitution Graham Dorrans goes off and Markus Rosenberg comes on.78:09
Corner taken left-footed by Chris Brunt, Graham Dorrans takes a shot. Blocked by Alex Pearce.77:49
Shot by Romelu Lukaku from 25 yards. Blocked by Alex Pearce.77:40
Jerome Thomas delivers the ball, clearance by Alex Pearce.76:30
James Morrison produces a right-footed shot from outside the penalty box and misses wide left of the target.75:53
Jimmy Kebe concedes a free kick for a foul on Liam Ridgewell. Ben Foster takes the free kick.74:32
Volleyed right-footed shot by Danny Guthrie. Save made by Ben Foster.74:14
Centre by Garath McCleary, Shot from 18 yards from Jimmy Kebe. Blocked by Jonas Olsson.73:37
Chris Gunter delivers the ball, Billy Jones manages to make a clearance.72:25
Chris Gunter fouled by Jerome Thomas, the ref awards a free kick. Alex Pearce takes the free kick.68:44
Assist on the goal came from James Morrison.68:44 Goal scored
Goal! - Romelu Lukaku - Reading 0 - 2 West Brom Romelu Lukaku scores a goal from just outside the penalty box to the bottom right corner of the goal. Reading 0-2 West Brom.68:32
Garath McCleary produces a cross, Gareth McAuley makes a clearance.67:58
Romelu Lukaku takes a shot.66:05
Inswinging corner taken left-footed by Ian Harte from the right by-line, Alex Pearce concedes a free kick for a foul on Jonas Olsson. Ben Foster takes the direct free kick.65:40
Inswinging corner taken from the right by-line by Ian Harte, save by Ben Foster.64:46
Corner taken left-footed by Ian Harte to the near post, clearance by Romelu Lukaku.64:46 Substitution
Substitution Adam Le Fondre on for Jem Karacan.64:34
Centre by Jimmy Kebe, Jonas Olsson makes a clearance.62:39
The ball is delivered by Garath McCleary, clearance by Jonas Olsson.62:01
George Thorne has an effort at goal from just outside the box which goes wide of the right-hand post.60:51
Pavel Pogrebnyak delivers the ball, Gareth McAuley manages to make a clearance.60:38
The ball is delivered by Jem Karacan.58:05
Centre by Chris Gunter, comfortable save by Ben Foster.56:30
James Morrison sends in a cross, Header by Romelu Lukaku from inside the area strikes the post.55:59
The ball is crossed by Garath McCleary, clearance by Chris Brunt.54:50
Danny Guthrie takes the inswinging corner, George Thorne makes a clearance.54:14
Jimmy Kebe crosses the ball, Garath McCleary takes a shot. Blocked by Billy Jones.52:52
Graham Dorrans is penalised for a handball. Free kick crossed left-footed by Ian Harte from left channel, George Thorne makes a clearance.52:00
A cross is delivered by Chris Gunter, clearance by Liam Ridgewell.48:57
Chris Brunt produces a cross, Adrian Mariappa manages to make a clearance.47:53
Romelu Lukaku is ruled offside. Adam Federici takes the indirect free kick.45:46
Corner taken by Chris Brunt from the left by-line.45:25
Romelu Lukaku takes a shot. Adrian Mariappa gets a block in.45:01
The referee blows his whistle to start the second half.45:01 Substitution
Substitution Filipe Daniel Carrico goes off and Garath McCleary comes on.45:00 +1:32 Half time
Half Time The ref blows to end the first period.45:00 +1:13
Billy Jones delivers the ball.45:00 +0:27
Unfair challenge on George Thorne by Filipe Daniel Carrico results in a free kick. Free kick taken by Romelu Lukaku.43:39
The ball is swung over by Romelu Lukaku, clearance by Chris Gunter.42:52
James Morrison fouled by Filipe Daniel Carrico, the ref awards a free kick. Free kick taken by Jonas Olsson.41:35
Free kick awarded for an unfair challenge on Jobi McAnuff by Billy Jones. Free kick crossed right-footed by Danny Guthrie from left wing, comfortable save by Ben Foster.38:22
Corner taken left-footed by Chris Brunt from the right by-line, Ian Harte manages to make a clearance.38:15
Centre by Romelu Lukaku, Chris Gunter makes a clearance.37:40
Chris Brunt produces a cross, clearance by Ian Harte.37:07
Corner taken by Chris Brunt from the left by-line, Ian Harte makes a clearance.36:10
Danny Guthrie takes the free kick.36:10 Booking
Booking Billy Jones is shown a yellow card.35:57
Free kick awarded for a foul by Billy Jones on Jobi McAnuff.34:59
Foul by Chris Brunt on Jem Karacan, free kick awarded. Danny Guthrie takes the free kick.33:10
Free kick awarded for an unfair challenge on Jonas Olsson by Pavel Pogrebnyak. Free kick taken by Ben Foster.31:43
Handball by Pavel Pogrebnyak. Gareth McAuley restarts play with the free kick.30:37
The ball is crossed by Chris Gunter, Jobi McAnuff takes a shot. Comfortable save by Ben Foster.27:02
The referee blows for offside. Ben Foster takes the free kick.25:16
Corner taken right-footed by Danny Guthrie, save by Ben Foster.25:07
Jimmy Kebe produces a cross.20:11
The referee gives a free kick against Pavel Pogrebnyak for handball. Ben Foster takes the free kick.18:39
James Morrison provided the assist for the goal.18:39 Goal scored
Goal! - Romelu Lukaku - Reading 0 - 1 West Brom Romelu Lukaku finds the net with a goal from close in low into the middle of the goal. Reading 0-1 West Brom.18:37
The ball is swung over by James Morrison,17:05
The ball is swung over by George Thorne, James Morrison takes a shot. Save by Adam Federici.16:26
Corner from the right by-line taken by Ian Harte, clearance made by Liam Ridgewell.16:00
Free kick awarded for a foul by Billy Jones on Jobi McAnuff. Danny Guthrie delivers the ball from the free kick right-footed from left wing, clearance made by Jonas Olsson.15:12
Romelu Lukaku is ruled offside. Indirect free kick taken by Adam Federici.14:13
Gareth McAuley gives away a free kick for an unfair challenge on Pavel Pogrebnyak. Danny Guthrie crosses the ball from the free kick right-footed from left channel, save by Ben Foster.12:15
Corner taken by Danny Guthrie, clearance made by Gareth McAuley.12:01
Jimmy Kebe delivers the ball, clearance made by Gareth McAuley.10:18
Jerome Thomas concedes a free kick for a foul on Chris Gunter. Adam Federici restarts play with the free kick.7:52
The assistant referee flags for offside against Pavel Pogrebnyak. Free kick taken by Ben Foster.7:17
Free kick awarded for an unfair challenge on Jimmy Kebe by Liam Ridgewell. Free kick taken by Alex Pearce.6:10
Danny Guthrie produces a cross, Jonas Olsson manages to make a clearance.4:16
Chris Gunter crosses the ball.2:41
Corner taken by Danny Guthrie, George Thorne manages to make a clearance.2:34
The ball is delivered by Jimmy Kebe, Jonas Olsson manages to make a clearance.2:01
Jonas Olsson gives away a free kick for an unfair challenge on Pavel Pogrebnyak. Alex Pearce takes the free kick.0:00
The match has kicked off.
Live data and text provided by our data suppliers