Franck Queudrue's stoppage-time volley denied Alan Pardew a winning start as Charlton's new boss.
Quedrue is mobbed by team-mates after his late equaliser
Charlton went behind when Brian McBride netted after Carlos Bocanegra's header hit the bar, but keeper Antti Niemi's weak punch let Darren Ambrose level.
Darren Bent pounced on a mix-up between Liam Rosenior and Bocanegra to slot in and put Charlton ahead.
But Queudrue equalised from a controversial Fulham free-kick which should have been a Charlton throw-in.
The ball seemed to go out of play off visitors winger Tomasz Radzinski as he challenged for the ball with Addicks defender Djimi Traore.
The assistant referee gave Fulham a free-kick for a Charlton handball and, after the Addicks failed to clear Michael Brown's set-piece, Queudrue struck home a volley.
It was cruel finish for Charlton and Pardew, who are now seven points behind fourth-from-bottom Sheffield United.
It had taken just 12 minutes for Pardew to get a close up view of why his new side have conceded the most goals in the Premier League this season.
Darren Bent scored his eighth goal of the season
Bocanegra was left completely unmarked from Queudrue's free-kick, allowing the American to power a header goalwards that Scott Carson tipped onto the crossbar.
Bocanegra's fellow American McBride was first to react to the rebound, volleying the ball into the roof of the net.
Six minutes later Charlton were level with a goal that was partly attributable to some indecisive goalkeeping from Niemi.
The Finn was unable to get any distance on his punch as he tried to clear Jerome Thomas' horribly miscued volley and the Fulham keeper could do nothing to stop Ambrose's shot going in off the post.
The goal restored Charlton's self-belief and they dominated the rest of the opening period.
Thomas' technique proved in better order as he flashed a shot past the post, while an effort from Marcus Bent was well saved by Niemi.
And, on the stroke of half-time, Charlton took the lead through a awful lack of communication between Bocanegra and Rosenior.
Earlier in the half Fulham had struggled with a couple of huge punts by Carson and a third kick upfield from the Charlton keeper was allowed by the two Fulham defenders to run through to Darren Bent, who made no mistake with a low shot.
606 DEBATE: Give your thoughts on the match
Pardew introduced Dennis Rommedahl for the start of the second half and the Danish winger made an immediate impact, setting up Ambrose, who should have done better with a shot.
Throughout the second half Rommedahl's pace provided a useful outlet for the home side with the Dane inspiring a number of Charlton counterattacks.
Rommedahl also tried his luck with a shot from an acute angle that almost surprised Niemi, who was forced to tip over.
At the other end of the pitch Fulham claimed Radostin Kishishev had handled in the box, but the visitors struggled to create clear chances until Queudrue popped up to provide a dramatic finale.
Charlton: Carson, Sankofa, El Karkouri, Hreidarsson, Traore, Ambrose (Hughes 74), Kishishev, Holland, Thomas (Rommedahl 45), Marcus Bent (Hasselbaink 82), Darren Bent.
Subs Not Used: Myhre, Fortune.
Goals: Ambrose 19, Darren Bent 45.
Fulham: Niemi, Rosenior, Christanval, Bocanegra, Queudrue, Routledge, Volz (Claus Jensen 74), Brown, Radzinski, Helguson (John 65), McBride.
Subs Not Used: Lastuvka, Runstrom, Zakuani.
Goals: McBride 13, Queudrue 90.
Ref: G Poll (Hertfordshire).