Wolves edged out Middlesbrough to claim a priceless victory in their fight for Championship survival.
Stephen McManus put into his own net to give the home side the lead before Grant Leadbitter equalised when his effort struck the underside of the bar and crept in.
Wolves made it 2-1 when Bjorn Sigurdarson slotted home but Leadbitter levelled again with a great strike.
With 20 minutes remaining, Kevin Doyle headed in what proved to be the winner.
- Middlesbrough have now suffered 11 defeats in 14 games
The result moves Wolves up to 22nd, level on 45 points with 21st-placed Peterborough, who also won.
Defeat, though, was a blow to Middlesbrough's play-off hopes. Tony Mowbray's side are now six points shy of sixth-placed Brighton.
Wolves were on the back foot early in the match, although it was home defender Kaspars Gorkss, instead of a Boro player, who forced home goalkeeper Dorus De Vries into making the first good save.
Boro hit the bar a total of four times in the first half, courtesy of efforts from Justin Hoyte, Leadbitter (twice) and Mustapha Carayol.
After full-back Hoyte rattled the bar with a powerful strike, Wolves took the lead when Stephen Hunt's low cross was turned in by McManus.
A few moments later Boro equalised when Leadbitter struck the post with a shot then followed up with a strike that rebounded against the underside of the crossbar and was judged to have crossed the line.
Carayol came close to giving the visitors the lead when a superb effort that was palmed on to the bar by De Vries.
Wolves re-took the lead after the break when Sylvan Ebanks-Blake's backheel found Sigurdarson, who eased past keeper Jason Steele before tapping in.
But Mowbray's men levelled once more when Leadbitter smashed in a tremendous 25-yard strike that found the bottom corner.
With less than a quarter of the match left to play, Doyle rounded off the scoring when he nodded in Roger Johnson's flick-on from Matt Doherty's throw-in.
Wolves manager Dean Saunders [on Grant Leadbitter's first goal]:
"The ball was not over the line. The assistant referee was seven yards out when he gave it and he was not in line with the goal.
"I can't understand why he gave it. He is just guessing. Don't give it if you aren't sure.
"All the players knew at half-time that it was not over the line but they have shown some great character after they have had a punch from the officials."
Middlesbrough manager Tony Mowbray:
"I stopped looking at the table in my mind a few weeks ago. We just have to win football matches. If we win games let's see where the season takes us. But obviously we are finding it difficult to matches at the moment.
"Yet if we had won at Derby County on New Year's Day we could have gone top of the table and that is the stark reality of our position.
"Confidence does get eroded with defeats and yet the defeats probably come along because you don't have key players available.
"I felt that we gave Wolves a tough game but the reality is that we did not get any points."
- 31 De Vries
- 14 Johnson
- 20 Robinson
- 21 Gorkss
- 30 Doherty
- 12 Hunt (Ward - 86' )
- 24 O'Hara Booked (Henry - 76' )
- 26 Davis Booked
- 09 Ebanks-Blake
- 15 Sigurdarson
- 29 Doyle (Batth - 81' )
- 36 McCarey
- 11 Ward
- 25 Batth
- 08 Henry
- 19 Hammill
- 28 Doumbia
- 23 Dicko
- 01 Steele
- 02 Hoyte
- 03 Bikey Booked
- 04 Friend
- 06 McManus
- 25 Reach (Dyer - 62' )
- 39 Woodgate (Zemmama - 74' )
- 07 Leadbitter
- 17 Jutkiewicz
- 19 Carayol (Sa Ameobi - 62' )
- 27 McDonald
- 32 Leutwiler
- 15 Hines
- 05 Zemmama
- 12 Dyer
- 16 McEachran
- 08 Sa Ameobi
- 30 Miller
Live Text Commentary
Full Time The referee signals the end of the game.90:00 +2:16
Short corner worked by Bjorn Sigurdarson.88:44
Lukas Jutkiewicz has an effort at goal from the edge of the area that misses to the right of the target.85:39 Substitution
Substitution Stephen Hunt leaves the field to be replaced by Stephen Ward.81:54
Sylvan Ebanks-Blake takes a shot. Save by Jason Steele.80:04 Substitution
Substitution (Wolverhampton) makes a substitution, with Danny Batth coming on for Kevin Doyle.80:04
Free kick awarded for an unfair challenge on Stephen Hunt by Sammy Ameobi. Direct free kick taken by Dorus De Vries.79:30 Booking
Booking The referee shows David Davis a yellow card for unsporting behaviour.79:18
Free kick awarded for a foul by David Davis on Sammy Ameobi. Merouane Zemmama restarts play with the free kick.77:57
Stephen Hunt takes a outswinging corner from the left by-line played to the near post, clearance made by Merouane Zemmama.77:12
Unfair challenge on Bjorn Sigurdarson by Sammy Ameobi results in a free kick. Direct free kick taken by Jack Robinson.76:07
Grant Leadbitter takes a outswinging corner to the near post, clearance by Kevin Doyle.74:38 Substitution
Substitution Karl Henry on for Jamie O'Hara.74:38
Sylvan Ebanks-Blake gives away a free kick for an unfair challenge on Kieron Dyer. Grant Leadbitter takes the free kick.73:49
Kieron Dyer restarts play with the free kick.73:49 Substitution
Substitution Merouane Zemmama on for Jonathan Woodgate.73:49
Jamie O'Hara concedes a free kick for a foul on Kieron Dyer.72:01
Corner taken by Stephen Hunt, clearance made by Jonathan Woodgate.71:32
Short corner taken by Stephen Hunt from the right by-line.70:53
Corner taken by Stephen Hunt from the right by-line played to the near post, clearance made by Stephen McManus.
Free kick awarded for an unfair challenge on Grant Leadbitter by Stephen Hunt. Free kick taken by George Friend.69:21
Roger Johnson provided the assist for the goal.69:21 Goal scored
Goal! - Kevin Doyle - Wolves 3 - 2 Middlesbro Kevin Doyle scores a headed goal from inside the six-yard box. Wolverhampton 3-2 Middlesbrough.67:38
Stephen Hunt takes the outswinging corner, Jonathan Woodgate manages to make a clearance.67:04
Kevin Doyle fouled by Jonathan Woodgate, the ref awards a free kick. Direct free kick taken by Jack Robinson.66:27
Grant Leadbitter takes a inswinging corner to the near post, clearance made by Kaspars Gorkss.64:26
Corner from the right by-line taken by Grant Leadbitter, Andre Bikey has a header from close range and clears the crossbar.64:09
Shot from 12 yards by Bjorn Sigurdarson. Clearance made by Justin Hoyte.63:53
Outswinging corner taken by Stephen Hunt from the right by-line played to the near post, clearance by George Friend.63:36
Effort from 25 yards by Jamie O'Hara. Grant Leadbitter makes a clearance.63:07
Stephen Hunt takes a inswinging corner from the right by-line to the near post, clearance made by Stephen McManus.61:29
Clearance made by Kevin Doyle.61:29 Substitution
Substitution Adam Reach leaves the field to be replaced by Kieron Dyer.61:29 Substitution
Substitution Sammy Ameobi comes on in place of Mustapha Carayol.61:29
Inswinging corner taken by Grant Leadbitter from the left by-line played to the near post,60:38
Grant Leadbitter has an effort at goal from outside the box which goes wide right of the goal.58:58
Jamie O'Hara takes a shot. Save by Jason Steele.58:24
Corner from the left by-line taken by Stephen Hunt, clearance made by Stephen McManus.58:08
Jamie O'Hara decides to take a short corner.57:56
Kevin Doyle takes a shot. George Friend gets a block in.57:35
Kevin Doyle takes a shot. Clearance by Stephen McManus.57:22
Stephen Hunt takes a shot. Blocked by Stephen McManus.55:49
Grant Leadbitter has an effort at goal from outside the box which goes wide left of the target.54:41
Free kick awarded for an unfair challenge on Sylvan Ebanks-Blake by Mustapha Carayol. Dorus De Vries takes the direct free kick.54:18
Outswinging corner taken right-footed by Grant Leadbitter, Kaspars Gorkss makes a clearance.54:01
Mustapha Carayol takes a shot. Kaspars Gorkss gets a block in.53:45
Sylvan Ebanks-Blake takes a shot. Save made by Jason Steele.53:25
Matt Doherty takes a shot. Stephen McManus gets a block in.51:45
Assist on the goal came from George Friend.51:45 Goal scored
Goal! - Grant Leadbitter - Wolves 2 - 2 Middlesbro A goal is scored by Grant Leadbitter from outside the area to the bottom left corner of the goal. Wolverhampton 2-2 Middlesbrough.50:53
Effort from the edge of the box by Lukas Jutkiewicz goes wide of the right-hand upright.47:52
Assist by Sylvan Ebanks-Blake.47:52 Goal scored
Goal! - Bjorn Sigurdarson - Wolves 2 - 1 Middlesbro Bjorn Sigurdarson fires in a goal from inside the six-yard box to the bottom right corner of the goal. Wolverhampton 2-1 Middlesbrough.46:28
Free kick awarded for an unfair challenge on Jack Robinson by Adam Reach. Dorus De Vries takes the direct free kick.45:41
Inswinging corner taken left-footed by Jamie O'Hara.45:23
Sylvan Ebanks-Blake takes a shot. Blocked by Adam Reach.45:01
The referee gets the second half started.45:00 +2:04 Half time
Half Time The ref blows to signal half-time.45:00 +0:51
Jamie O'Hara takes a shot. Jonathan Woodgate gets a block in.44:36
Lukas Jutkiewicz takes a shot. Dorus De Vries makes a save.43:21
David Davis takes a shot. Justin Hoyte gets a block in.41:04
Stephen Hunt produces a right-footed shot from deep inside the penalty area which goes wide of the right-hand post.38:32
Shot from long distance by Andre Bikey misses to the right of the goal.35:34
Mustapha Carayol takes a shot.33:56
Sylvan Ebanks-Blake produces a left-footed shot from deep inside the six-yard box which goes wide of the left-hand post.32:56
Close range shot by Adam Reach goes wide of the left-hand upright.30:08
Matt Doherty fouled by George Friend, the ref awards a free kick. Jamie O'Hara takes the direct free kick.28:10
Corner taken left-footed by Jamie O'Hara, save by Jason Steele.27:05
Jamie O'Hara has an effort at goal from 25 yards. Grant Leadbitter gets a block in.26:14 Booking
Booking Booking for Andre Bikey for unsporting behaviour.26:08
Andre Bikey challenges Bjorn Sigurdarson unfairly and gives away a free kick. Jamie O'Hara takes the direct free kick.25:55
Grant Leadbitter takes a shot. Blocked by Kaspars Gorkss.25:38
Jack Robinson gives away a free kick for an unfair challenge on Justin Hoyte. Justin Hoyte restarts play with the free kick.24:45 Goal scored
Goal! - Grant Leadbitter - Wolves 1 - 1 Middlesbro Grant Leadbitter gets on the score sheet with a goal from close in to the bottom right corner of the goal. Wolverhampton 1-1 Middlesbrough.24:26
Lukas Jutkiewicz takes a shot. Dorus De Vries makes a save.23:17
Unfair challenge on Andre Bikey by David Davis results in a free kick. Direct free kick taken by Stephen McManus.18:03
Handball decision goes against Lukas Jutkiewicz. Free kick taken by Kaspars Gorkss.17:34
Foul by David Davis on Grant Leadbitter, free kick awarded. Direct free kick taken by Grant Leadbitter.16:25
Assist by Stephen Hunt.16:25 Goal scored
Goal! - Stephen McManus - Wolves 1 - 0 Middlesbro Stephen McManus puts the ball into his own goal. Wolverhampton 1-0 Middlesbrough.15:35
Inswinging corner taken from the right by-line by Jamie O'Hara, Jonathan Woodgate makes a clearance.12:47
Mustapha Carayol has an effort at goal from just outside the box which goes wide of the right-hand post.12:29
Justin Hoyte takes a shot.7:47
Corner from the right by-line taken by Grant Leadbitter, Kevin Doyle manages to make a clearance.5:13 Booking
Booking Jamie O'Hara receives a caution for unsporting behaviour.4:47
Jamie O'Hara concedes a free kick for a foul on Grant Leadbitter. Direct free kick taken by Mustapha Carayol.2:07
George Friend gives away a free kick for an unfair challenge on Kevin Doyle. Direct free kick taken by Jamie O'Hara.0:00
The ref blows the whistle to start the match.
Live data and text provided by our data suppliers