Liam Moore had the best chance for the away side 20 minutes into the match but he could only head wide at the back post following a corner.
Charlton took the lead in the 27th minute with a goal from Michael Morrison after he met a corner from Dale Stephens with a powerful header.
The home side were looking dangerous from set pieces and Yann Kermorgant should have doubled Charlton's lead, but he fired over when the ball fell to him from a corner.
Leicester were reduced to 10 men at the start of the second half when Matty James picked up his second yellow card of the afternoon.
Charlton soon made their advantage count and doubled their lead in the 59th minute with a goal from Kermorgant, who headed home a corner from Johnnie Jackson.
Danny Drinkwater gave the away side renewed hope just three minutes later after firing home from inside the box.
The Addicks nearly scored their third of the match but were denied by a stunning save from Kasper Schmeichel to keep out Yann Kermorgant's header.
Simon Church and Jordan Cousins both had late chances to wrap up the game for Charlton but they held on for the three points and their first league victory of the season.