Two late goals helped Charlton send 10-man Everton crashing to their first defeat in eight Premiership matches.
Talal El Karkouri nodded in from Paul Konchesky's volleyed cross on 82 minutes to put the Addicks in front.
Substitute Duncan Ferguson was then handed a straight red card after flinging an elbow into the face of Charlton's Hermann Hreidarsson.
The Icelandic defender had the last laugh, however, rifling in a left-foot volley with five minutes remaining.
The win extended Charlton's unbeaten Premiership run to five games and denied Everton the chance to move second in the table.
But the late drama seemed unlikely after a tense opening in which neither side looked like being breached.
Charlton were first to fashion an opening, but Jonathan Fortune prodded the ball wide after a hopeful ball from Jerome Thomas.
Everton came closest to opening the deadlock in the first half with Marcus Bent's fine right-foot shot on 15 minutes which Dean Kiely had to fingertip around the post.
Charlton probably enjoyed more of the possession, but created few chances, with Shaun Bartlett heading over a rare opportunity after a good cross from the left by Hreidarsson.
Bent managed to loop a header on target in the closing minutes of the first half, although it was a simple save for Kiely.
At the other end, Everton keeper Nigel Martyn limped off on the stroke of half-time with a calf strain and was replaced by Richard Wright - making his first Premiership appearance of the season.
The second half began at a higher tempo, and Everton found themselves forced back by the home team.
But chances were still at a premium, Bartlett having the first shot of note with a 25-yard drive which did not test Wright.
Jerome Thomas mis-hit a volley from Danny Murphy's corner on 58 minutes, but Everton's defence remained solid.
The visitors almost took the lead on 65 minutes during an extraordinary goalmouth scramble from Thomas Gravesen's corner, in which the ball struck Addicks' defenders Luke Young and El Karkouri before Hreidarsson finally hoofed it clear.
Wright was called upon to make his first save of note two minutes later, diving to his right to parry a powerful drive from Radostin Kishishev.
Bartlett then had a great chance after Lee Carsley's slip, but his shot was saved by Wright, who also caught a powerful Hreidarsson volley moments later.
Charlton's Luke Young then wasted a good chance, blazing over when well placed 10 minutes before the end.
But just as it looked like the match was heading for a stalemate, El Karkouri struck with a close-range header to stun Everton.
The Toffees' hopes of a fightback were hit moments later as Ferguson saw red for his crazy elbow on Hreidarsson.
And Hreidarsson's late left-foot strike from Murphy's corner sealed the points to extend Charlton's unbeaten run to four games.
Charlton: Kiely, Young, El Karkouri, Fortune, Hreidarsson, Rommedahl (Konchesky 79), Murphy, Kishishev, Holland, Thomas (Euell 69), Bartlett.
Subs Not Used: Andersen, Hughes, Johansson.
Goals: El Karkouri 82, Hreidarsson 85.
Everton: Martyn (Wright 45), Hibbert, Stubbs, Weir, Pistone, Yobo (McFadden 84), Carsley, Gravesen, Cahill, Kilbane, Bent (Ferguson 74).
Subs Not Used: Campbell, Naysmith.
Sent Off: Ferguson (83).
Ref: M Riley (W Yorkshire).