Wolves conceded a last-minute goal as they were beaten by Charlton in a defeat which drops them back into the Championship's bottom three.
Karl Henry's long-range shot for the visitors hit the woodwork before Dorian Dervite poked in Charlton's opener after a goal-line scramble.
Wolves equalised when Kevin Doyle headed in a Jack Robinson cross.
Charlton's late surge
Charlton have earned 14 points from the last 18 available.
But Charlton snatched a winner when Danny Green's deflected strike fell to Jonathan Obika, who hit the winner.
The defeat left a stunned Wolves third from bottom, with Peterborough - who also lost - a place above them, by way of a better goal difference.
Dean Saunders' side now face Burnley at home and Brighton away as Wolves try to avoid a second successive relegation.
Charlton are five points adrift of the top six with two games left, their strong finish to the campaign having apparently come too late to get into the play-off zone.
The home side had the first chance of the match when a drilled Ricardo Fuller shot was parried away by visiting keeper Dorus De Vries.
However, Wolves were proving determined opponents and went close through Henry, whose effort from distance hit the crossbar before keeper Ben Hamer managed to prevent the ball crossing the line.
Charlton eventually took the lead on 63 minutes when Green's corner was not cleared and Dervite got the decisive touch to score.
Doyle took just three minutes to level, setting up an exciting finale, won in dramatic style by Obika.
Charlton manager Chris Powell:
"On the balance of chances we deserved to win. They had two, the Karl Henry shot and the goal but, apart from a few crosses, our keeper has not and a lot to do.
"We had the better of the chances. These lads never give up and they dug in again.
"It is tantalisingly close, but it is only a very slim chance. We will still go for it."
Wolves manager Dean Saunders:
"Football is cruel isn't it? Both their goals are scrambled. It was not our day.
"All is not lost. Other results have kept us in it. All that bad luck can be reversed. The players can do it.
"We have dug results out before. This was a kick in the teeth and is hard to swallow, but it is football. You have to pick yourselves up off the floor."
Live Text Commentary
Full Time The referee blows his whistle to end the game.90:00 +6:16
The referee blows for offside against Adam Hammill. Ben Hamer takes the indirect free kick.90:00 +5:49
Outswinging corner taken by Adam Hammill, Michael Morrison makes a clearance.90:00 +5:06
Free kick awarded for a foul by Bradley Pritchard on Matt Doherty. Dorus De Vries takes the free kick.90:00 +3:01
Kevin Doyle has a headed effort at goal from deep inside the area missing to the left of the target.90:00 +1:05
Indirect free kick taken by Dorus De Vries.90:00 +1:05 Substitution
Substitution Danny Batth replaces Stephen Ward.90:00 +1:05
The offside flag is raised against Jonathan Obika.89:28
The assist for the goal came from Danny Green.89:28 Goal scored
Goal! - Jonathan Obika - Charlton 2 - 1 Wolves Goal scored by Jonathan Obika from deep inside the penalty area to the bottom right corner of the goal. Charlton 2-1 Wolverhampton.88:46
Outswinging corner taken right-footed by Adam Hammill from the right by-line.85:12
Indirect free kick taken by Dorus De Vries.85:12 Substitution
Substitution Adam Hammill replaces Stephen Hunt.85:12
Free kick awarded for an unfair challenge on Roger Johnson by Danny Green.80:05 Substitution
Substitution Jonathan Obika comes on in place of Ricardo Fuller.79:19
Matt Doherty challenges Callum Harriott unfairly and gives away a free kick. Danny Green crosses the ball in from the free kick.78:27
Free kick awarded for an unfair challenge on Ben Hamer by Stephen Hunt.78:12
Ben Hamer restarts play with the free kick.78:12 Booking
Booking Stephen Hunt is booked.76:58
Roger Johnson gives away a free kick for an unfair challenge on Ricardo Fuller. Mark Gower restarts play with the free kick.
Bjorn Sigurdarson challenges Ben Hamer unfairly and gives away a free kick. Free kick taken by Ben Hamer.75:16 Booking
Booking The referee shows Bjorn Sigurdarson a yellow card for unsporting behaviour.73:41
Free kick awarded for a foul by Callum Harriott on Matt Doherty. Dorus De Vries restarts play with the free kick.73:16 Booking
Booking Matt Doherty goes into the book for unsporting behaviour.71:04
Inswinging corner taken by Danny Green from the left by-line.70:47
Yann Kermorgant takes a shot. Save by Dorus De Vries.69:26
The ball is delivered by Danny Green, clearance by Kaspars Gorkss.68:39
The assistant referee flags for offside against Roger Johnson. Free kick taken by Ben Hamer.67:38
Effort on goal by Mark Gower from long range goes harmlessly over the bar.67:00 Booking
Booking Caution for Kaspars Gorkss.65:28
The assist for the goal came from Jack Robinson.65:28 Goal scored
Goal! - Kevin Doyle - Charlton 1 - 1 Wolves Kevin Doyle finds the net with a fantastic headed goal from close in. Charlton 1-1 Wolverhampton.62:25 Goal scored
Goal! - Dorian Dervite - Charlton 1 - 0 Wolves Dorian Dervite finds the back of the net with a headed goal from inside the six-yard box. Charlton 1-0 Wolverhampton.61:58
The ball is crossed by Danny Green, clearance made by Jack Robinson. Corner taken by Danny Green played to the near post,61:44
Corner taken by Danny Green, clearance made by Kevin Doyle.61:25
Shot from 20 yards by Danny Green. Blocked by Stephen Ward.60:13 Substitution
Substitution Johnnie Jackson leaves the field to be replaced by Danny Green.55:41
Chris Solly sends in a cross, clearance made by Kaspars Gorkss.55:33
Ricardo Fuller delivers the ball.52:31
Karl Henry fouled by Ricardo Fuller, the ref awards a free kick. Free kick taken by Jack Robinson.51:29
Free kick awarded for an unfair challenge on Matt Doherty by Ricardo Fuller. Roger Johnson takes the indirect free kick.48:31
Stephen Hunt produces a drilled left-footed shot from deep inside the penalty area which goes wide of the left-hand post.45:42
Ricardo Fuller has an effort at goal from outside the area which goes wide left of the target.45:01
The referee gets the second half started.45:00 +5:11 Half time
Half Time The ref blows to signal half-time.44:57
The assistant referee signals for offside against Callum Harriott. Roger Johnson restarts play with the free kick.43:16
The ball is crossed by Yann Kermorgant, clearance made by Kaspars Gorkss.41:05
Johnnie Jackson takes the inswinging corner, free kick awarded for a foul by Yann Kermorgant on Kaspars Gorkss. Dorus De Vries takes the free kick.40:23
Inswinging corner taken right-footed by Chris Solly from the left by-line to the near post, Kevin Doyle manages to make a clearance.38:03
Outswinging corner taken by Stephen Hunt, Chris Solly makes a clearance.37:25
Corner taken left-footed by Stephen Hunt.32:43
Rhoys Wiggins gives away a free kick for an unfair challenge on Karl Henry. Kaspars Gorkss takes the free kick.32:03
Free kick awarded for a foul by Kaspars Gorkss on Ricardo Fuller. Johnnie Jackson delivers the ball from the free kick left-footed from right wing, Roger Johnson makes a clearance.24:06
Karl Henry takes a shot from 35+ yards.23:15
The official flags Bradley Pritchard offside. Free kick taken by Dorus De Vries.22:49
Ricardo Fuller has an effort at goal. Save by Dorus De Vries.22:19
Free kick awarded for a foul by Jack Robinson on Rhoys Wiggins. Ben Hamer restarts play with the free kick.21:20
Stephen Hunt takes a outswinging corner from the left by-line played to the near post, Bradley Pritchard makes a clearance.19:44
Karl Henry concedes a free kick for a foul on Johnnie Jackson. Free kick taken by Mark Gower.18:14
Free kick awarded for an unfair challenge on Chris Solly by Matt Doherty. Michael Morrison takes the free kick.17:47
Mark Gower challenges Stephen Hunt unfairly and gives away a free kick. Indirect free kick taken by Jack Robinson.15:15
Chris Solly fouled by Stephen Ward, the ref awards a free kick. Ben Hamer takes the indirect free kick.14:45
The ball is swung over by Callum Harriott, clearance by Roger Johnson.14:21
The offside flag is raised against Kevin Doyle. Free kick taken by Ben Hamer.13:36
Tongo Doumbia fouled by Johnnie Jackson, the ref awards a free kick. Free kick taken by Jack Robinson.12:48
The ball is crossed by Mark Gower, Roger Johnson makes a clearance.12:35
Rhoys Wiggins produces a cross, Matt Doherty manages to make a clearance.11:29 Substitution
Substitution Mark Gower is brought on as a substitute for Andy Hughes.9:42
Ricardo Fuller has an effort at goal from 20 yards. Save by Dorus De Vries.7:42
Corner from the right by-line taken by Johnnie Jackson, Dorus De Vries makes a save.4:43
Outswinging corner taken by Stephen Hunt, clearance made by Ricardo Fuller.1:21
Rhoys Wiggins crosses the ball, Tongo Doumbia manages to make a clearance.0:00
The game begins.
Live data and text provided by our data suppliers