Jamie Vardy gave them a half-time lead with a ninth-minute strike and further goals came from Danny Drinkwater and David Nugent as City turned on the style in the second half.
It was City’s 23rd win of the season but the first time they have beaten Charlton in 11 league meetings in the last 14 years.
The victory also extended Leicester’s unbeaten run to 14 games and kept them eight points clear at the summit, while leaving Charlton deep in relegation danger.
Leicester were forced into a change when Lloyd Dyer was ruled out after failing to recover from a knock he picked up in the win over Ipswich. French winger Riyad Mahrez replaced him to make his full debut.
Charlton also had one change with Rhoys Wiggins returning after injury and Morgan Fox dropping to the bench.
City made a fast start with Mahrez finding Nugent who in turn played in Vardy, but the in-form striker prodded the ball just wide as goalkeeper Ben Hamer closed him down.
However, in the ninth minute the explosive Vardy put the Foxes ahead.
Anthony Knockaert won the ball with a crunching tackle in midfield, found Nugent and a neat touch from him set up Vardy to the right of goal.
Vardy, showing bags of confidence, cut inside and netted with his left foot for his 13th goal of the season and his sixth in the last nine games.
The gulf in class between the sides was already showing and another slick move ended with Knockaert firing in a shot from an angle to the left of goal that Hamer tipped away at full stretch.
A mistake by Morgan gave Charlton their first glimpse of a chance, but Kasper Schmeichel comfortably saved Simon Church’s lob.
An even better chance came Leicester’s way a minute later but Nugent headed a superb cross from Mahrez over the bar.
Almost immediately Charlton made a change with Dorian Dervite replacing Michael Morrison in the centre of defence. It was not clear whether it was a tactical switch or Morrison was injured.
The Foxes were in complete control but were unable to add to their lead before half-time.
Nugent saw a shot deflect for a corner, Vardy’s touch let him down when he was played in by Nugent and then headed a Ritchie De Laet cross wide, while Mahrez was just off target with a well-struck 20-yard shot.
But it took only three minutes of the second half for City to score the second goal they had been threatening.
Jeff Schlupp, raiding down the left flank, found Nugent with an accurate centre but the striker’s fierce shot was well saved by Hamer. Unfortunately for Charlton, though, the loose ball fell to Drinkwater just inside the penalty area and he smashed an unstoppable shot into the roof of the net.
It was all City and Vardy hammered a good chance well wide and Drinkwater warmed Hamer’s hands with another terrific strike.
In a rare breakaway Charlton won a free-kick and Richard Wood headed over from five yards.
But there was little doubt where the points were heading and Leicester scored a third goal in the 64th minute with Nugent beating Hamer with a low shot into the bottom corner from 20 yards. That was 19th goal of the season, 17 of them in the Championship.
City’s attacking play was now scintillating and only some great saves by Hamer off Schlupp and Nugent prevented further goals.