Graham Potter’s first game as Chelsea boss ended in dramatic fashion after Conor Gallagher scored a last-minute goal against his former side.
Odsonne Edouard opened the scoring after seven minutes before Pierre-Emerick Aubameyang equalised with a neat finish late in the first half.
Broja in a uniquely favourable position to usurp Aubameyang and break Chelsea striker curse
But it was ultimately the former Palace loanee who had the final say as he came off the bench to curl in a 90th-minute effort to hand Graham Potter victory in his first Premier League match in charge of the Blues.
Chelsea entered the contest having won all 10 of the last meetings between the two clubs, while Palace were playing their first match in nearly a month after the Queen’s death and train strikes postponed games against Manchester United and Brighton.
Patrick Vieira made three changes from the starting XI that drew with Newcastle in early September and one of those decisions quickly paid off.
Edouard, who replaced Jean-Philippe Mateta as Vieira’s central striker, met Jordan Ayew’s seventh-minute cross and lifted the ball past Kepa Arrizabalaga and into the top right corner.
Chelsea had a good chance to level at the 20-minute mark when Mason Mount headed inches wide of the right post.
It was the start of a sustained period of pressure from the visitors, who once again missed by inches after Raheem Sterling pounced on his own rebound but watched his second effort ping off a post.
And at the other end, Eberechi Eze could not find the finishing touch on an attempt to double Palace’s advantage, firing the ball just wide.
Palace were furious when Jordan Ayew looked through on goal only to be stopped by an outstretched Thiago Silva on the ground, but the defender was only given a yellow card.
Silva’s presence on the pitch proved vital moments later when Reece James found him at the edge of the area and he nodded the pass in the direction of Aubameyang, who spun and fired past a diving Vicente Guaita.
And it was more bad news for the hosts when Nathaniel Clyne and Silva both rose to meet the ball to the left of Palace’s goal and the former landed awkwardly. He stayed down until he was taken off the pitch on a stretcher and replaced by James Tomkins, himself newly-returned from injury and available to Vieira for the first time this season.
Chelsea got their first chance of the second half 10 minutes after the restart, Sterling weaving around Palace shirts and looking to get a shot in before passing to Ben Chilwell who skied his attempt.
With few opportunities for either side as the second half ticked on, Guaita snagged a Mount cross from out of the air before Tomkins blocked another Blues attempt.
Michael Olise battled his marker before issuing a sharp pass to Wilfried Zaha who could not beat Chelsea goalkeeper Kepa.
Gallagher was warmly received when he stepped on the Selhurst Park pitch in the 76th minute for the first time since his loan spell as an Eagle, but any friendly sentiment was quickly forgotten when he curled in the decider.