Charlton pair Michael Morrison and Yann Kermorgant came back to haunt their old club to end 10-man Leicester's unbeaten start to the season.
- Related Content
Morrison and Kermorgant scored in either half as Charlton won for the first time in the Sky Bet Championship this season.
They made heavy work though of breaking that duck against a Leicester side who saw Matty James sent off moments into the second half.
Even though Danny Drinkwater replied for the Foxes, they could have few complaints at this loss.
Charlton were saved by the weather from certain defeat on their previous home outing when, trailing 3-1 against Doncaster, the elements came to their rescue.
In glorious sunshine, there was little chance of a repeat scenario here against Leicester.
But Charlton's defensive frailties, that were exposed last week, were highlighted once again early on as Leicester blew two chances to take the lead.
Jamie Vardy broke free but his cross evaded team-mates who were lurking for the cut-back after 15 minutes and just six minutes later, Leicester defender Liam Moore should have drawn first blood.
James' corner was flicked on but an unmarked Moore could only head tamely wide.
It turned out to be crucial as Morrison headed home against his former club in the 27th minute when Dale Stephens' corner was met by the giant Charlton defender who made no mistake from six yards out.
Charlton's biggest weapon looked to be set-pieces.
There was almost a carbon moments later, only for Simon Church to somehow miss from close-range following Johnnie Jackson's corner.
The same pattern continued after the restart.
Kermorgant saw his 25-yard free-kick palmed round the post by Leicester goalkeeper Kasper Schmeichel in the 50th minute.
From the resulting corner, the visitors should have equalised when Vardy's quick break and pass saw Drinkwater denied by home goalkeeper.
The ball rebounded to James who was ushered off the ball inside the penalty area.
James believed he was pushed over and remonstrated with referee Darren Deadman, who pulled out his second yellow card and sent the midfielder off.
It would get even worse for Leicester. After David Nugent had been denied by Hamer, Charlton extended their lead in the 59th minute.
The Peterborough official incurred the visitors' wrath as Schmeichel looked to have been pulled down from Jackson's corner as Kermorgant headed home.
Deadman waved away the protests - but Nigel Pearson's side would be thrown a lifeline by Drinkwater two minutes later.
Nugent's cross was cleared by Dorian Dervite to Drinkwater who rifled home from the edge of the box.
Leicester were indebted to a fine double save from Schmeichel to keep out Kermorgant and Church in the 67th minute.
He was at it again as Addicks substitute Jordan Cousins was thwarted but it meant little as the south Londoners held on.