Hakim Ziyech’s last-minute winner gave Chelsea victory at Selhurst Park.
The Moroccan broke the deadlock with a brilliant far-post volley from Marcos Alonso’s cross.
Earlier, Ziyech netted after pouncing on the loose ball after a save by keeper Jack Butland, but the goal was disallowed after VAR showed that Romelu Lukaku was offside.
Crystal Palace defended well but did not register a single effort on target.
Eagles keeper Vicente Guaita, on the other hand, was called into action to deny N’Golo Kante and keep out Antonio Rudiger’s long-range thunderbolt before Chelsea eventually got the goal they deserved.
The Blues remain third in the Premier League table, 13 points behind leaders Manchester City and eight points clear of fifth-placed West Ham.
Chelsea: Mendy, Rudiger, Christensen, Silva, Pulisic, Kante (Kovacic 74), Jorginho (Loftus-Cheek 74), Sarr (Alonso 74), Havertz, Ziyech, Lukaku.
Subs not used: Kepa, Werner, Chalobah, Saul, Kenedy, Vale.