Jason Euell piled on the misery for flu-ridden Wolves manager Dave Jones as he marked his 100th appearance for Charlton with both goals in a hard-fought victory.
The first tinged was with controversy as Wolves felt Euell ran from an offside position in the 39th minute to steer the ball past goalkeeper Michael Oakes.
There was no arguing about the second, however, as Wolves got into a muddle after 78 minutes and the ball rebounded of Denis Irwin to leave Euell with a tap-in for his sixth league goal of the season.
Victory for Charlton consolidated fourth position in the Barclaycard Premiership for Alan Curbishley's men, while Wolves remain rooted to the bottom, but the match was a lot tighter than the scoreline suggests.
Goalkeeper Dean Kiely kept Charlton on level terms with a brilliant one-handed reflex save after seven minutes.
Alex Rae chipped the ball into the six-yard box from the right and Nathan Blake rose well to power a downward header, but Kiely dived to his left to palm the ball away.
The early stages saw a good battle in the centre of midfield between Charlton's Scott Parker and skipper Matt Holland, and Wolves captain Paul Ince and Rae, with the home pair just edging it.
It was Parker who showed good skill to release Paolo di Canio in the left edge of the penalty area after 14 minutes. The Italian hit it first time on the half-volley but it was straight at Oakes.
Charlton might have scored after 20 minutes. Graham Stuart's header set up Euell inside the six-yard box and he controlled it with his chest before sending
a header inches over the crossbar.
Charlton went agonisingly close again after 26 minutes. Mark Clyde's sliced
clearance fell for Stuart who quickly released Jonatan Johansson, but he fired
wide from 18 yards with just Oakes to beat.
Wolves were then left fuming with the linesman in the 38th minute as Euell ran
from what looked like an offside position to fire Charlton into the lead.
Di Canio played the ball through and Euell had all the time in the world to
pick his spot past Oakes. It was a hairline decision but the flag stayed down
and Charlton celebrated while Wolves protested.
Wolves started the second half brightly and it needed a goalline clearance
from Mark Fish to rescue Charlton after 47 minutes.
Blake peeled wide on the right and drilled in a low cross which Henri Camara
side-footed towards the goal. Charlton had bodies back in number and Fish stuck
out a boot to clear the ball.
Kiely came to the rescue again after 73 minutes when he was almost
wrong-footed by a fierce shot from Shaun Newton. The ball deflected off Perry
but the former Republic of Ireland goalkeeper showed good reflexes to change
direction and make the save.
Another important save came after 77 minutes as Kiely blocked an angled drive
from Blake. That was a turning point as Charlton broke forward and scored the
all-important second goal.
Di Canio fed Parker in the box, his low cross bounced off Irwin into the path
of Euell who knocked it over the line from a yard.
Teams
Charlton Kiely, Kishishev, Fish, Perry, Hreidarsson, Holland,
Parker, Euell, Stuart (Konchesky 82), Di Canio (Cole 82),
Johansson.
Subs Not Used: Royce, Jensen, Fortune.
Booked: Euell.
Goals: Euell 38, 79.
Wolverhampton Oakes, Irwin, Craddock, Clyde,
Naylor (Luzhny 45), Newton (Ganea 82), Rae, Ince,
Cameron (Kennedy 69), Camara, Blake.
Subs Not Used: Ikeme, Gudjonsson.
Booked: Cameron, Ince, Rae.
Att: 26,148
Ref: R Styles (Hampshire).