Frank Lampard's first-half strike ensured Chelsea closed the gap on Manchester United to three points.
Lampard's goal was enough to secure three points for Chelsea
Lampard scored with a long-range strike and was later denied by Scott Carson, who also saved from Didier Drogba and Shaun Wright-Phillips.
Salomon Kalou clipped the post for the Blues, while Michael Ballack and Andriy Shevchenko both headed wide.
Charlton's two best chances fell to Amady Faye, who hit the target each time but could not beat Petr Cech.
The victory was Chelsea's fourth in succession in all competitions - and with John Terry returning from injury as a late substitute, the winter blip seems well and truly over.
Chelsea started superbly - Shevchenko forced a good save with a vicious strike from a tight angle and Ballack missed the target with a header before Lampard struck with 18 minutes gone.
But Charlton rallied late on and Chelsea were hanging on at the end as the home team threw everything forward.
Lampard's goal came after Faye lost possession in midfield.
The ball found its way to Lampard, who shifted to his right to create the opening before shooting beyond Carson.
Wayne Bridge - in for Ashley Cole - delivered a series of telling crosses, one of which was met by Shevchenko, but the Ukrainian could not keep his header on target.
Carson saved a low strike from Drogba as the visiting team threatened to take the game away from Charlton.
606 DEBATE: Your reaction to Chelsea's victory
But Alan Pardew's side almost equalised when a cross from Talal El Karkouri forced a fingertip save from Cech.
And Charlton finally enjoyed a spell of possession shortly before the break - though it was Lampard who came closest to scoring the next goal with a thunderous free-kick that Carson palmed clear on the stroke of half time.
Charlton brought on Hasselbaink for Dennis Rommedahl at the start of the second half.
But it all seemed very comfortable for Chelsea, who knocked the ball around with ease until the 68th minute, when Charlton finally opened them up.
A clever touch from Bent picked out Faye in space but his strike was athletically tipped over by Cech.
Faye was to have another good chance after getting the wrong side of Makelele but Cech denied him once more.
Chelsea substitute Kalou hit the post and Carson twice saved from Wright-Phillips - but it was Charlton who enjoyed most of the late pressure without conjuring an equaliser.
Charlton manager Alan Pardew:
"I think that Chelsea knew they were in a game. I'm proud of everybody involved with Charlton.
"The fans could be massive for us - they trust the team now and I think that we are going to get better.
"We have still got more quality to come in but the commitment and spirit showed by the group - I think we have had a real go at Chelsea."
Chelsea manager Jose Mourinho:
"I think we should have scored a second goal in the first half and made the game easier.
"It was always difficult and there was always danger in the last period, but I think we deserved the three points.
"But in my opinion Charlton, with their improvement, can dream of surviving in the Premiership."
Charlton: Carson, Sankofa, El Karkouri, Hreidarsson, Thatcher, Rommedahl (Hasselbaink 46), Faye, Holland (Lisbie 78), Hughes, Thomas (Diawara 88), Marcus Bent.
Subs Not Used: Randolph, Ambrose.
Chelsea: Cech, Diarra, Essien, Carvalho, Bridge, Mikel (Wright-Phillips 75), Makelele (Terry 88), Ballack, Lampard, Shevchenko (Kalou 75), Drogba.
Subs Not Used: Cudicini, Geremi.
Goals: Lampard 18.
Ref: M Halsey (Lancashire).