Jonathan Walters’ penalty had brought Stoke level in a fiercely competitive game at the Bet365 Stadium, but Cahill’s strike with three minutes left sealed yet another win for Antonio Conte’s side who now look certainties for the Premier League title.
The Londoners suffered a blow before kick-off when Eden Hazard was ruled out with a minor knock but showed little sign of missing the Belgian when they took the lead after just 13 minutes.
Willian whipped in a free-kick from the left towards goal and Stoke goalkeeper Lee Grant couldn’t keep it out at the near post.
Grant will have been disappointed to let Willian's effort slip beyond him but atoned for his earlier error with a block from Marco Alonso’s powerful effort from inside the area as Chelsea began strongly.
Stoke were celebrating an equaliser when Bruno Martins Indi scrambled the ball home from a corner, but after consulting with his linesman referee Anthony Taylor ruled out the goal for a push by Saido Berahino.
Mark Hughes' side did find themselves level moments later when Taylor pointed to the spot following a push by Cahill on Walters. The Ireland international picked himself up and smashed the ball down the middle to make it 1-1
Pedro perhaps should done better shortly before half-time but he could only fire over after his initial shot was blocked.
Marcos Alonso was then inches away from putting Chelsea in front in the second half but his free-kick thumped off the crossbar.
Grant was having a superb game for Stoke and did well to push away a shot from Nemanja Matic as Chelsea continued to pile on the pressure.
The former Derby man had to be at his best again when tipping away Pedro’s low drive, with Chelsea perhaps wondering whether it wasn’t to be their day.
That all changed with three minutes left when Erik Pieters failed to clear a corner allowing Cahill to sweep home from close range.
Frustrations then boiled over in stoppage-time when Stoke defender Phil Bardsley was shown a second yellow card for a reckless tackle on Fabregas.
The result means Chelsea are now 13 points clear of both Tottenham and Man City having played a game more, Stoke remain in ninth place.