Steed Malbranque gave Fulham the lead with a first-half penalty and Sean Davis wrapped up the points with a stunning volley on 64 minutes.
The win puts Fulham ahead of Charlton in the race for a UEFA Cup spo, and even within reach of a final Champions League place.
The match got off to a frantic start with two key moments within the opening minutes.
Straight from kick-off Fulham striker Collins John was left appealing for a penalty and seconds later Charlton had their first chance as Edwin Van der Sar made a brave stop from Claus Jensen.
Luis Boa Morte drilled a left-footed effort wide on three minutes and soon after John was stopped by an impressive tackle from Jonathan Fortune.
Both sides were playing with Europe in their sights and it was not long before Charlton created more chances of their own.
Graham Stuart shot over the bar before Jensen came close again after good link up play between Carlton Cole and Jason Euell.
Boa Morte was always a threat to the Addicks defence and on 18 minutes made the most of a defensive lapse to take the ball around Dean Kiely.
However the Charlton keeper pulled down Boa Morte and the ref had no hesitation in pointing to the penalty spot.
Malbranque stepped up to take the penalty kick, sending Kiely the wrong way.
Five minutes later Charlton were appealing for a penalty of their own and were disappointed not to have been given the chance to level.
Martin Djetou handled as Luke Young attempted to hook the ball over his head, but the Fulham man went unpunished.
Malbranque came close to doubling Fulham's lead towards the end of the first half, but Kiely was equal to his drive.
In the second period chances were few and far between until Davis produced a stunning strike on 64 minutes.
Davis was on as a half-time substitute for Bobby Petta and after receiving the ball 20 yards out hit an unstoppable volley beyond Kiely.
Ten minutes later Davis came close again with another long-range drive, but this time Kiely brought off a terrific save.
As Charlton searched for a way back into the game Jason Euell missed a free header and then Fortune nodded straight at Van der Sar.
The Fulham goalkeeper produced another late stop from Fortune late on to kill off any hopes of a fightback and keep Fulham dreaming of European football next season.