The match's deadlock wasn't broken until the 71st minute, but the scores were quickly evened as Joshua Malcolm netted a penalty to bring Palace level. A devastating blow was delivered in the 93rd minute, however, as Charlton buried the ball into the corner of Rohan Luthra's net moments before the final whistle sounded.
The game was a rugged, close-fought affair throughout and started in the fashion it ultimately continued in. The Eagles began as the dominant 11, though the balance of power swung throughout the 90 minutes.
Palace had a chance within 10 minutes, as Brandon Aviero brought down an aerial pass only to be met by the home side's 'keeper, who strongly hit the ground to steal the ball from the young winger's feet. From this, the Addicks broke but couldn't capitalise on their pace going forward as the ball was struck wide of goal.
The hosts then saw a series of headers sail over Palace's bar and were frustrated not to have broken the deadlock early in the game. Aviero again found himself battling Charlton's shot-stopper as he struck the ball hard into his palms at the near-post, but it was the Addicks who saw the first-half's best chance go begging as a roving run from midfield led to the home side striking Luthra's post before sending the rebounded effort over.
For the third time, the home side's 'keeper denied Palace well by deflecting a Malcolm shot out for a corner with his out-stretched legs. Again, Charlton then broke well and Luthra was called into action to stand strong at his near-post.
Moments before the whistle blew for half-time, Rob Street appeared to have opened Palace's account with a towering header, only to fire like a bullet into the Charlton 'keeper's hands.
Opening the second-half, left-back Jude Russell stormed into the opposition's box and took the ball to the byline. His low whip across the face of goal was not latched onto with any effect, however, and the game remained goalless.
By the hour mark, the match had found its competitors in a dead-heat and was only shaken up when Charlton found themselves celebrating a backwards header that ended up in Palace's net following a lofted free-kick from the edge of the box.
The Eagles weren't defeated, however, and equalised just three minutes later when Malcolm stepped-up to take a spot-kick, burying with emphatic strength.
As it had before, the game slowed down from this point onwards and seemed guaranteed to end with the spoils shared. But, as time drew to a close, Charlton maintained their focus and drove into Palace's box to net in the last minute of play, taking all three points from under the Eagles' noses.
Palace: Luthra, Boateng, Chamberlin-Gayle, Matthews, Russell, Trehy, Gurung, Malcolm, Aviero, Street, Gonzalez (Kymani-Gordon 45). Subs not used: Russell, Hanson, Parris.