Charlton survived a Fulham fightback to go seventh in the Premiership.
Charlton took the lead when Shaun Bartlett's right-wing cross fell for Jerome Thomas to sweep the ball home.
Talal El Karkouri and Danny Murphy both hit the woodwork after the break before El Karkouri headed home a Murphy free-kick to double the lead.
Fulham's Papa Bouba Diop rattled the crossbar before substitute Tomasz Radzinski pulled one back from close-range, but Charlton held on.
Charlton, fresh from two away wins in a row, began much the better of the two teams with Thomas and Dennis Rommedahl using their pace to exploit gaps in the Fulham defence.
Fulham were relying on Andy Cole on the counter-attack and he had the ball in the net after rounding Dean Kiely, only for the assistant's flag to rule him offside.
The hosts' first real chance fell to El Karkouri, who latched on to a Murphy corner to force a decent low save from Edwin van der Sar with a firm header.
Soon after they went ahead, Bartlett's right-wing cross evading two Fulham defenders and falling at the feet of Thomas, who swept in from six yards.
Fulham tried to respond, Sylvain Legwinski hitting a 20-yard drive that Kiely had to be alert to save, but the visitors' attack looked too thin to force any prolonged pressure.
The Addicks nearly made it 2-0, but Jon Fortune could not quite get on to the end of a Hermann Hreidarsson knock-down from a corner.
The second period started in much the same vain, El Karkouri slamming a shot against the crossbar after Diop had failed to clear another Murphy corner.
Fulham just could not get into their stride and Murphy linked up well with Hreidarsson down the left before jinking into the box and curling a right-foot shot on to the far post.
It seemed a matter of time before Charlton doubled their lead and with 66 minutes on the clock they did just that.
The lively Thomas was felled by Liam Rosenior on the edge of Fulham's box and Murphy's inswinging free-kick was flicked home with his head by El Karkouri.
The Cottagers responded well with Diop crashing a free-kick off the crossbar from just outside the penalty area.
Fulham boss Chris Coleman brought on Radzinski and Collins John as he tried to haul his side back into the game and with eight minutes left he got his wish.
Brian McBride had a header saved by Kiely and Radzinski was on hand three yards out to poke the ball home and set up a tense finish for the home supporters.
Charlton: Kiely, Young, El Karkouri, Fortune, Hreidarsson, Rommedahl (Konchesky 83), Kishishev, Holland, Murphy, Thomas (Euell 87), Bartlett (Jeffers 79).
Subs Not Used: Andersen, Hughes.
Goals: Thomas 27, El Karkouri 66.
Fulham: Van der Sar, Rosenior, Rehman, Pearce, Bocanegra, Diop, Legwinski (John 73), Pembridge, Malbranque (Radzinski 63), Cole, McBride.
Subs Not Used: Flitney, Volz, Knight.
Booked: Diop, Rosenior.
Goals: Radzinski 82.
Ref: S Bennett (Kent).