Both teams had opportunities to seal the win, with Michael Olise and Wilfried Zaha coming close for the hosts, and Vicente Guaita saved Antonio Rudiger and N’Golo Kante’s efforts.
Ziyech thought he had fired the Thomas Tuchel’s side ahead after getting into a rebound from a Romelu Lukaku strike, only for the goal to be ruled out for offside.
The winger, though, earned all three points for the Club World Cup Champions in the 89th minute as he smashed in a Marcos Alonso cross at the back post.
On Tuesday, Chelsea will host Lille in the Champions League at Stamford Bridge.
On the other hand, on Wednesday, Palace will play Watford at Vicarage Road in the Premier League.