Blackburn outplayed Charlton to claim their third straight home win and end the Addicks' 100% away record.
Brett Emerton set the tone with a superb finish after just two minutes, and Paul Dickov's 18th-minute header put the home side further ahead.
Charlton got a goal back through Bryan Hughes, but Morten Pedersen restored Blackburn's two-goal lead.
In-form Craig Bellamy slotted home his side's fourth in the last minute to seal a richly-deserved victory.
Charlton looked off the pace throughout, and had barely had a kick when Emerton put his side in front.
Hermann Hreidarsson miscontrolled an innocuous ball across the edge of the box, but there looked to be no immediate danger as Jonathan Spector shepherded Emerton away from goal.
The Australian surprised everyone though as he swept a powerful shot from a narrow angle into the top corner.
Blackburn belied their popular image as a mainly physical threat as they played some delightful football.
Charlton were all at sea with passes going astray, and they were fortunate to escape when Craig Bellamy was wrongly adjudged offside with a clear run on goal.
It got worse. Charlton again failed to clear their lines and they were made to pay as Lucas Neill's cross deflected off Spector to fall perfectly to an unmarked Dickov who headed in from six yards.
The Addicks were possibly unlucky not to get an offside decision this time, but it made little difference to the overall result.
Dickov chases down Charlton's Danny Murphy in midfield
Charlton eventually got a foothold in the game as they started to hold on to possession in midfield.
Spector's well-timed run beat the offside trap, but the full-back could not quite apply the precise volley needed to beat Brad Friedel.
Soon after, Michael Gray's hamstring injury forced a reshuffle in the Blackburn ranks, and the changes seemed to stop Rovers' momentum.
Charlton's lacklustre performance scarcely merited it, but Hughes' brave slide at the far post got them back in the game.
With Darren Bent starved of service, the striker turned creator and sent in a dangerous low cross that was helped on by Darren Ambrose before Hughes bundled the ball over the line.
The goal finally got Charlton going, and they finished the half well on top.
Blackburn started the second half in the same dominant fashion as the first and had a clear penalty decision go against them when Hreidarsson handled Bellamy's cross.
Fortunately for referee Phil Dowd, the mistake did not turn out to be critical as Pedersen notched their third on 59 minutes.
Tugay and Emerton combined to set Steven Reid free down the right and his touch was expertly turned in by the Norwegian.
Rovers continued to make chances with Bellamy's pace causing no end of problems for Charlton.
A flowing move down the left ended with Emerton heading over from Bellamy's cross.
Charlton never gave up and Hreidarsson's bullet header and Jay Bothroyd's stab drew two sharp saves from Friedel.
The match looked to be fizzling, but there was still time for Bellamy to get on the end of Shefki Kuqi's knockdown and dab it past Anderson.
Blackburn boss Mark Hughes:
"Our play was really positive and was probably as good a performance as I've seen here.
"We've played a very good side who were unbeaten away from home and won quite comfortably so we deserve credit for the way we've performed.
"We've not shouted from the rooftops about what we're trying to do. People usually say negative things."
Charlton boss Alan Curbishley:
"You can't defend and perform the way we did and expect to win a football match.
"We lacked heart and it was lacklustre. Our away run had to end some time but I didn't think it would end like this.
"We were getting caught on the ball and Blackburn were sharper than us. I think we lost the plot about why we've done so well and what we need to do."
Blackburn: Friedel, Neill, Todd (Bentley 73), Khizanishvili, Gray (Mokoena 28), Emerton, Reid, Tugay, Pedersen, Dickov (Kuqi 81), Bellamy.
Subs Not Used: Jansen, Lee.
Goals: Emerton 2, Dickov 18, Pedersen 59, Bellamy 90.
Charlton: Andersen, Young, Perry, Hreidarsson, Spector, Rommedahl (El Karkouri 70), Ambrose (Thomas 83), Kishishev, Murphy (Bothroyd 70), Hughes, Bent.
Subs Not Used: Holland, Myhre.
Booked: Perry, Hughes.
Goals: Hughes 36.
Ref: P Dowd (Staffordshire).