Striker Yann Kermorgant returned to haunt his former team Leicester as he scored one and created another in Charlton's efficient victory.
The 31-year-old Frenchman was booed throughout but converted Bradley Pritchard's cross early on.
Anthony Knockaert missed before Chris Wood levelled from Ritchie De Laet's deflected cross as Leicester dominated.
Danny Haynes's winner came 12 minutes from the end when he took Kermorgant's flick and fired in from 20 yards.
The result continued Nigel Pearson's manager-of-the-month curse; since winning five out of five in January the Foxes have now suffered three consecutive defeats.
Playing in Leicester for the first time since his costly play-off semi-final penalty miss two years ago during an ill-fated spell with the Foxes, Kermorgant had the last laugh as Charlton performed a textbook smash-and-grab raid.
Knockaert was thwarted by Charlton keeper Ben Hamer, who did well to parry his shot behind, and Paul Konchesky failed to pick out three Leicester forwards when he was well placed.
Those chances allowed the visitors to go in front after 19 minutes when Pritchard got free down the left channel and pulled back for Kermorgant, who neatly converted from 12 yards to a chorus of boos.
Knockaert then wasted a golden opportunity to equalise six minutes before half-time but ballooned his effort over the bar after a good run by De Laet.
Despite showing little in attack, Pritchard could have put the Addicks further ahead but shot over with his lob and Kasper Schmeichel recovered well to deny Michael Morrison soon after.
Wood was twice denied before he fired in an eighth goal in seven matches since arriving from West Brom.
But Charlton substitute Haynes rifled into the top corner for a 2-1 lead with Hamer tipping over Danny Drinkwater's fizzing 30-yard effort behind and Wood smashing his free-kick wide during stoppage time.
Leicester boss Nigel Pearson:
"It's a disappointing result. I think they came to do a bit of a job on us and they did it well in terms of getting everybody behind the ball and limiting our ability to play the type of football that we do.
"When you concede the types of goals that were conceding it gives us a problem in terms of winning games and that's really the top and bottom of it tonight. I don't think we deserved to lose the game but we have."
Charlton boss Chris Powell:
"I've done the double over Leicester and my mentor and I don't know how to feel really. I'm pleased for my club and pleased for my group of players. We needed a result and they were made to work hard for it.
"It's huge because we had lost three games and drawn one in our last four. We've been playing well but we've just been getting hurt by late goals. It's fallen for us this evening.
"You just hope that they can continue to build on that and we're just looking for consistency. I hope this is the start of a really good run for us."