Frank Lampard's men edged closer to sealing a place in next season's Champions League as a seventh win in eight games takes them one point ahead of Leicester and opened up a five-point lead on fifth-placed Manchester United.
The Blues were fortunate when opening the scoring at Selhurst Park as former Chelsea captain Gary Cahill fell to the ground clutching his hamstring to allow Willian to tee up Olivier Giroud for his fourth goal in six games.
Christian Pulisic's form since the Premier League's restart has led to comparisons with Eden Hazard, the man he replaced at Stamford Bridge, and the Belgian would have been proud of Chelsea's second as the 21-year-old American skipped past Joel Ward and hammered in off the inside of the near post.
"Christian is hugely important," added Lampard. "You look at the top attacking players in the world and they score goals and make assists regularly that win games and at the moment he is doing that, so I am delighted with him."
As so often this season, Lampard's men failed to capitalise on their dominance and were suddenly on the back foot when Wilfried Zaha thundered a shot high past Kepa Arrizabalaga from long range for Palace's first goal in four games.
Chelsea looked to have sealed the three points again when substitutes Ruben Loftus-Cheek and Tammy Abraham combined for the latter to restore a two-goal cushion 19 minutes from time.
Just over a minute later, though, Palace were back in the game when a brilliant move culminated in Patrick van Aanholt squaring for Christian Benteke to tap in just his second goal of the season.
Questions remain over whether the Chelsea defence will be strong enough to maintain a title challenge next season and they were left clinging on in stoppage time as Kepa turned Scott Dann's header off the inside of the post and only a last-ditch challenge from Kurt Zouma denied Benteke a second.
- Vardy matches Aubameyang -
Leicester have now won just one of their six games since the restart to see their lead over the chasing pack for a place in the top four whittled away, but were grateful for a 1-1 draw at the Emirates after a slow start against in-form Arsenal.
Pierre-Emerick Aubameyang swept home the opener for the Gunners as Kasper Schmeichel kept Leicester in the game with a stunning save to deny Alexandre Lacazette.
"In the first half we should have gone 3 or 4-0 up and kill the game against this type of opposition," said Arsenal boss Mikel Arteta.
Lacazette also saw a goal disallowed for offside after the break before the game turned when Eddie Nketiah was shown a straight red card after a VAR review for a high challenge on James Justin.
Leicester made the man advantage count as Vardy pounced to slot home Demarai Gray's cross and regain his two-goal advantage over Aubameyang in the race for the Golden Boot.
"I was really pleased with how we managed the game 11 v 10. We got a deserved goal and if we had made the final pass we could have gone on and won the game," said Leicester manager Brendan Rodgers.
Arsenal's hopes of reaching the top four now appear over as they remain nine points behind with just four games to go.
- Welbeck makes Watford mark -
At the other end of the table, Danny Welbeck's first Premier League goal for Watford was as valuable as it was spectacular as the Hornets beat Norwich 2-1 to move four points clear of the relegation zone.
Defeat pushes Norwich ever closer to the drop and the Canaries could be relegated at the weekend if they fail to beat West Ham.
Like so much of his career, Welbeck's first season at Watford has been blighted by injury, but the former Manchester United and Arsenal forward showed his class by adjusting his body to hook home the winner after Craig Dawson cancelled out Emiliano Buendia's early opener for Norwich.
"I am speechless after the goal," said Welbeck. "It means a lot to me and means a lot to the whole team. It is one that puts us on our way now. We will give it our all from now."