Wolves captain Kevin Doyle's second-half strike caused an upset at Molineux as the Championship's second-bottom side beat second-placed Hull City.
After a dismal first half, Doyle latched onto Bjorn Sigurdarson's pass on 55 minutes to drill home the only goal of the game from 15 yards.
Jay Simpson hit the post for Steve Bruce's Hull with 15 minutes left.
But Wolves hung on for a victory that takes them back out of the relegation zone.
Wolves - who are out of the drop zone on goal difference - were also helped by Derby's late equaliser at Barnsley, who now slip to 23rd in the division.
Steve Bruce's promotion-chasing Hull are still six points clear of third-placed Watford, who lost at Millwall.
The only worthwhile first-half effort of note from either side was from Hull, a deflected Stephen Quinn shot which span agonisingly wide of Wolves keeper Dorus De Vries' left-hand upright.
Wolves' only sniff at goal, a long-range drive from Tongo Doumbia which whistled just wide, was greeted with ironic applause from the home fans, but that all changed 10 minutes into the second half.
Doumbia won the ball for Sigurdarson to send Doyle into the box - and the home skipper kept his cool to clip home his eighth goal of the season.
In-form captain Doyle
The winner against Hull was Wolves captain Kevin Doyle's third goal in six games, following a barren spell stretching back to a brace on 1 December against now-relegated Bristol City.
Doumbia then fired wide after Doyle's header from Stephen Ward's cross had fallen invitingly. That miss looked like it might prove costly when, fed by Robbie Brady, Hull sub Jay Simpson got clear inside the box, only to drill his left-foot shot against Wolves' left upright.
But the home side then blew an even better chance, Sigurdarson finding the side netting when it seemed Dean Saunders' men surely had to score.
Wolves could even have won by more, in the end, but Stephen Hunt laudably stayed on his feet and only won a corner when Ahmed Elmohamady's challenge could so easily have won him a penalty - and makeshift striker Roger Johnson then headed tamely over from Doyle's cross.
On a night when Wolves keeper De Vries did not have to make a save, after shipping three goals to relegation rivals Huddersfield on the same pitch on Saturday, Saunders' side managed only their second clean sheet in 11 games - to move clear of the bottom three, although only on goal difference.
Wolves manager Dean Saunders told BBC Sport:
"I'm really proud of the lads tonight after Saturday's kick in the teeth in losing at home to Huddersfield.
"They went out and did the job I asked them to do by keeping the ball off Hull.
"And we limited them to very few chances and kept a clean sheet. In fact, I don't think our keeper had a save to make.
"It's in our own hands now. If we win our last three games, then we stay up, it's as simple as that."
Hull City boss Steve Bruce told BBC Sport:
"It must be in the DNA of this club to not make it easy for ourselves. There is no way we deserved to get beat tonight. We've made one mistake when Ahmed Fathi got caught in possession and got punished.
"But it's still in our hands. Although you want to concentrate on winning your own games, hearing the result from Millwall did make me feel better.
"And to be in this position is still a wonderful opportunity and a wonderful achievement. We just need to stay calm.
"We've got three games to go and we need four points. We've got Bristol City at home on Friday night, then Barnsley away. And we know we're capable."
- 31 De Vries
- 11 Ward (Foley - 78' )
- 14 Johnson
- 20 Robinson
- 21 Gorkss
- 30 Doherty
- 08 Henry Booked
- 12 Hunt
- 28 Doumbia
- 15 Sigurdarson (Batth - 89' )
- 29 Doyle
- 36 McCarey
- 25 Batth
- 32 Foley
- 19 Hammill
- 23 Dicko
- 35 Cassidy
- 49 McAlinden
- 34 Stockdale
- 05 Chester
- 06 Hobbs
- 17 Fathi Booked (Proschwitz - 88' )
- 10 Koren (Simpson - 27' )
- 23 Faye (Fryatt - 73' )
- 27 Elmohamady
- 29 Quinn
- 31 Meyler
- 30 Brady Booked
- 37 Boyd Booked
- 01 Jakupovic
- 02 Rosenior
- 15 McShane
- 14 Cairney
- 11 Simpson
- 12 Fryatt
- 33 Proschwitz
Live Text Commentary
Full Time The referee brings the game to a close.90:00 +0:45
Direct free kick taken by Stephen Hunt.90:00 +0:45 Booking
Booking George Boyd receives a yellow card.90:00 +0:40
George Boyd concedes a free kick for a foul on Kevin Doyle.89:51
Foul by Jack Hobbs on Kevin Doyle, free kick awarded. Direct free kick taken by Matt Doherty.87:57 Substitution
Substitution Danny Batth comes on in place of Bjorn Sigurdarson.87:57 Substitution
Substitution Nick Proschwitz comes on in place of Ahmed Fathi.86:42
The assistant referee flags for offside against Roger Johnson. David Stockdale takes the free kick.85:42
Foul by Kevin Doyle on James Chester, free kick awarded. Free kick taken by David Meyler.84:30
Stephen Hunt takes a outswinging corner to the near post, Headed effort from deep inside the area by Kevin Doyle misses to the left of the goal.82:10
Free kick awarded for a foul by Tongo Doumbia on David Meyler. Free kick taken by David Meyler.80:23
Effort from outside the box by Stephen Quinn goes wide right of the target.78:46
Dorus De Vries takes the indirect free kick.78:46 Booking
Booking Robbie Brady is cautioned by the ref for unsporting behaviour.78:40
Free kick awarded for a foul by Robbie Brady on Karl Henry.78:10
Free kick awarded for an unfair challenge on Stephen Quinn by Tongo Doumbia. Direct free kick taken by Stephen Quinn.77:14
Shot from close range by Bjorn Sigurdarson misses to the right of the goal.77:14 Substitution
Substitution Kevin Foley is brought on as a substitute for Stephen Ward.76:54
Stephen Hunt takes a shot. Ahmed Fathi gets a block in.75:40
Effort from inside the area by Jay Simpson bounces off the post.
Kaspars Gorkss takes the free kick.74:36 Booking
Booking Ahmed Fathi booked.73:41
Corner taken by Robbie Brady, Kaspars Gorkss makes a clearance. Free kick awarded for an unfair challenge on Stephen Hunt by Ahmed Fathi.72:38
David Stockdale takes the indirect free kick.72:38 Substitution
Substitution Matt Fryatt comes on in place of Abdoulaye Faye.72:38
Foul by Bjorn Sigurdarson on Robbie Brady, free kick awarded.72:03 Booking
Booking Karl Henry booked for unsporting behaviour.70:51
Headed effort from inside the area by James Chester misses to the left of the target.67:34
Effort from inside the area by Tongo Doumbia misses to the left of the goal.66:27
Abdoulaye Faye challenges Karl Henry unfairly and gives away a free kick. Dorus De Vries takes the free kick.65:49
Free kick awarded for an unfair challenge on Ahmed Elmohamady by Tongo Doumbia. Robbie Brady takes the free kick.65:16
Ahmed Elmohamady takes a shot. Blocked by Jack Robinson.64:25
Corner taken left-footed by Robbie Brady to the near post, clearance by Kevin Doyle.59:51
Foul by Karl Henry on David Meyler, free kick awarded. Stephen Quinn restarts play with the free kick.58:36
Effort from the edge of the area by Robbie Brady goes wide of the right-hand upright.54:15
Assist on the goal came from Bjorn Sigurdarson.54:15 Goal scored
Goal! - Kevin Doyle - Wolves 1 - 0 Hull City Goal scored by Kevin Doyle from deep inside the penalty box to the bottom right corner of the goal. Wolverhampton 1-0 Hull.52:42
Stephen Quinn challenges Matt Doherty unfairly and gives away a free kick. Dorus De Vries takes the free kick.50:57
Jack Robinson concedes a free kick for a foul on David Meyler. Free kick taken by David Meyler.49:51
Tongo Doumbia gives away a free kick for an unfair challenge on Stephen Quinn. Stephen Quinn restarts play with the free kick.48:53
Jay Simpson is caught offside. Dorus De Vries takes the free kick.47:24
Stephen Quinn fouled by Bjorn Sigurdarson, the ref awards a free kick. David Stockdale takes the free kick.45:01
The referee starts the second half.45:00 +2:18 Half time
Half Time The half-time whistle blows.45:00 +1:51
Corner taken short by Stephen Quinn.41:57
Karl Henry fouled by Ahmed Fathi, the ref awards a free kick. Free kick taken by Karl Henry.39:11
Unfair challenge on Abdoulaye Faye by Stephen Hunt results in a free kick. David Stockdale takes the free kick.38:04
Centre by Ahmed Fathi.37:18
Outswinging corner taken by Robbie Brady, clearance by Bjorn Sigurdarson.36:26
Tongo Doumbia has an effort at goal from outside the penalty area missing to the wide left of the goal.35:15
Stephen Quinn takes a shot. Stephen Hunt gets a block in. Corner from the right by-line taken by Robbie Brady, Roger Johnson manages to make a clearance. Long distance shot from Ahmed Fathi misses to the left of the goal.34:27
Corner taken by Robbie Brady played to the near post, clearance made by Roger Johnson.32:35
Robbie Brady takes a short corner.30:34
Free kick awarded for a foul by Ahmed Fathi on Stephen Hunt. Jack Robinson restarts play with the free kick.30:16
Stephen Quinn takes a shot. Blocked by Bjorn Sigurdarson.29:31
Outswinging corner taken by Robbie Brady from the left by-line played to the near post, clearance made by Matt Doherty.28:22
Unfair challenge on Matt Doherty by Stephen Quinn results in a free kick. Dorus De Vries restarts play with the free kick.26:16 Substitution
Substitution Jay Simpson on for Robert Koren.24:17
Ahmed Fathi has an effort at goal from just outside the penalty box which goes wide of the left-hand post.21:13
Unfair challenge on Jack Robinson by David Meyler results in a free kick. Stephen Hunt takes the free kick.20:17
Robbie Brady gives away a free kick for an unfair challenge on Karl Henry. Roger Johnson takes the direct free kick.16:53
Stephen Hunt takes a shot.16:32
Stephen Ward takes a shot. Blocked by James Chester.14:22
Roger Johnson concedes a free kick for a foul on Stephen Quinn. Robert Koren takes the free kick.4:20
Free kick awarded for an unfair challenge on Tongo Doumbia by Ahmed Fathi. Stephen Hunt restarts play with the free kick.0:25
Free kick awarded for a foul by Kevin Doyle on James Chester. James Chester takes the free kick.0:00
The game kicks-off.
Live data and text provided by our data suppliers