Marcus Bent scored on his debut to earn Charlton a point and end Chelsea's 100% home record in the league this season.
Charlton's Darren Ambrose (l) tussles with Claude Makelele
Eidur Gudjohnsen had put Chelsea ahead from close range after Thomas Myhre parried Hernan Crespo's header.
But the Blues failed to finish off the Addicks and the visitors got a deserved equaliser when substitute Bent met Darren Ambrose's pass to nod home.
Chelsea's frustration was compounded by Ricardo Carvalho's dismissal for a second booking late on.
With Chelsea having won their previous 10 Premiership games, it was understandable that Addicks boss Alan Curbishley showed caution in starting with five across the middle and leaving Darren Bent as a solitary striker.
Curbishley's tactic was to stifle the home side - and, initially, it worked, with the home side's best early attacks being stopped by the linesman's flag.
But Chelsea were still the only team threatening and it was no real surprise when they did break the deadlock on 19 minutes.
Damien Duff's corner was met by Crespo and although Myhre kept out his header, the ball dropped for Gudjohnsen, who bundled the ball home despite Radostin Kishishev's best efforts.
That looked like being the platform for another routine Chelsea win - but, apart from a spectacular overhead attempt from Frank Lampard, they failed to trouble Myhre again for the remainder of the first half.
Charlton came out all guns blazing after the break - with Bryan Hughes sounding a warning shot with a low effort that Petr Cech did well to stop after it came at him through a crowd of legs.
That still failed to rouse Jose Mourinho's side from their slumber and instead it was Charlton who continued to press forward.
And on the hour mark they got the equaliser their endeavour deserved when Bent ran on to Ambrose's lofted through-ball and flicked his header into the net.
Mourinho's response was to send on Shaun Wright-Phillips and Maniche on for Damien Duff and Claude Makelele.
Gudjohnsen sent a shot skidding just wide soon after as the Blues pushed forwards ominously.
But Charlton hung on and were still looking dangerous themselves, Darren Bent finding room in the box to send a shot flashing just over.
Carvalho's second booking - for a foul on Darren Bent with eight minutes to go - set up a grandstand finish.
Both sides went for the win, with Ambrose going close for Charlton and Frank Lampard almost snatching it for Chelsea.
But in the end a draw was a fair result from a pulsating game.
Chelsea: Cech, Gallas, Ricardo Carvalho, Terry, Del Horno (Carlton Cole 79), Makelele (Wright-Phillips 63), Joe Cole, Lampard, Gudjohnsen, Duff (Maniche 63), Crespo.
Subs Not Used: Cudicini, Paulo Ferreira.
Sent Off: Ricardo Carvalho (81).
Booked: Ricardo Carvalho, Terry.
Goals: Gudjohnsen 19.
Charlton: Myhre, Young, Fortune, Hreidarsson, Powell, Rommedahl (Marcus Bent 40), Holland, Kishishev, Hughes, Ambrose (Bartlett 90), Darren Bent.
Subs Not Used: Andersen, Perry, Spector.
Goals: Marcus Bent 59.
Ref: S Bennett (Kent).