Liverpool climbed to fifth place in the Premiership thanks to wonderful strikes from John Arne Riise and Luis Garcia.
Riise's goal - a superb half-volley - came seven minutes after half-time.
And Luis Garcia added a second with another spectacular effort, hitting an unstoppable shot with the outside of his right foot past Dean Kiely.
Charlton had ridden their luck in the first half, Danny Murphy clearing Sami Hyypia's header off the line and Djibril Cisse hitting the woodwork.
For 52 minutes this game looked to be following a similar pattern to Liverpool's midweek goalless draw with Deportivo la Coruna in the Champions League.
Rafael Benitez's side once again dominated possession, but were unable to take advantage of that domination, partly due to Dean Kiely's good goalkeeping and some resolute Charlton defending.
Riise took his goal superbly, quickly adjusting his body shape, before guiding a swerving shot into the corner.
His goal also served to reduce Liverpool's rising levels of frustration.
Riise did not have much time to celebrate his goal as he was replaced by Harry Kewell soon after scoring.
Together with Steven Finnan, the Norwegian international had played a prominent part in a bright start for Liverpool.
First Finnan crossed for Garcia, who headed wide.
Jamie Carragher's diagonal pass then found Riise bursting down the left, but the Norwegian was dispossessed by Luke Young, who did well to recover.
Having failed with a header, Garcia tried his luck with a shot which was well saved by Kiely.
As Liverpool pressed again the Charlton goalkeeper needed help from Murphy, who cleared off the line after Hyypia's downward header.
Liverpool were getting closer and closer to opening the scoring and Cisse rattled Kiely's left-hand upright with a vicious shot from a free-kick.
The Charlton goal was living a charmed life, with Milan Baros the next Liverpool player to turn away in frustration after his header was directed straight at the Charlton keeper.
Late in the first half Murphy, returning to Anfield after his summer move to Charlton, almost let Liverpool in, giving away the ball to Cisse.
The French striker's deflected effort fell into Baros's path, but the Czech Republic striker shot wildly over the bar.
An astonishing burst of speed by Cisse ended with the Frenchman's cross reaching Garcia, whose shot was blocked by the Charlton defence.
When Charlton did get into the Liverpool half all too often their attacks broke down as Shaun Bartlett kept wandering into offside positions.
Charlton manager Alan Curbishley threw on Francis Jeffers, but the former Everton striker did not have a distinguished return to Merseyside, quickly picking up a booking.
Charlton were so ineffective in attack that Chris Kirkland did not have to make a single save.
And Charlton paid for their attacking ineffectiveness when on 74 minutes, Garcia capped a fine individual performance with a superbly-executed goal, scoring with a swerving right-footed shot.
Liverpool: Kirkland, Finnan, Hyypia, Carragher,
Traore (Warnock 86), Luis Garcia, Alonso, Hamann,
Riise (Kewell 64), Baros (Sinama Pongolle 77), Cisse.
Subs Not Used: Dudek, Diao.
Goals: Riise 52, Luis Garcia 74.
Charlton: Kiely, Young, Perry, Fortune, Hreidarsson,
Rommedahl (Jeffers 63), Stuart, Holland, Murphy,
Lisbie (Hughes 78), Bartlett (Euell 71).
Subs Not Used: El Karkouri, Andersen.
Ref: A D'Urso (Essex).