Stoke had looked like posting a record fifth successive draw since the start of the new season as the match entered the 85th minute but Cole’s goal condemned them to their first league defeat this term.
Chelsea manager Roberto di Matteo left John Terry and Frank Lampard on the bench after their exertions in the midweek Champions League draw against Juventus, with Juan Mata, Eden Hazard and Oscar lining up behind Fernando Torres.
Stoke boss Tony Pulis also opted to leave out Michael Owen in favour of another England striker in Peter Crouch as the Potters looked for a first win at Stamford Bridge since 1974.
The hosts dominated possession in the opening exchanges but it was Stoke who had the first real chance as Michael Kightly’s shot was blocked by Cole in the fourth minute.
Torres wasted a good chance from Mata’s accurate corner soon afterwards as Chelsea struggled to break down a stubborn Stoke defence.
Stoke gave notice of their attacking threat in the 19th minute when Jonathan Walters headed against the bar following a free kick from Glenn Whelan.
Seven minutes later, Mata finally carved open the Stoke defence when his excellent ball played in Torres, but the Spaniard missed his kick from just six yards out after controlling well on his chest.
Chelsea continued to dominate possession but were reduced to speculative efforts from distance.
The visitors then created two great chances in the space of 60 seconds, with Marc Wilson’s powerful drive well saved by Petr Cech, before the Chelsea keeper had to be at his best to deny a flying header from Kightly.
Two efforts from Cole and David Luiz that flew high and wide just before the break summed up a frustrating first 45 minutes for the home side.
Chelsea started the second half in determined fashion and thought they should have had a penalty five minutes in when Oscar clashed with Ryan Shawcross.
But referee Michael Oliver deemed that the Stoke defender had won the ball and booked the Brazilian for diving instead.
Mata should have done much better when the ball was played back to him in acres of space but he curled his shot embarrassingly wide.
Oscar at least managed to force Asmir Begovic into a save after his effort from just outside the box, while Walters went close up the other end when he just failed to connect properly with Crouch’s knockdown.
Mata then found space inside the Stoke area after good work from Torres but was denied by an excellent last-ditch tackle from Shawcross.
Owen was introduced as a substitute for Charlie Adam and the visitors continued to look dangerous on the break.
Oscar again called Begovic into action in the 67th minute when the keeper did well to save his deflected shot.
But di Matteo’s men continued to struggle and the Italian sent on Lampard with nine minutes to play in an attempt to salvage a win.
However, it was left to another of the Blues’ old guard to secure victory five minutes from time as the ball deflected to the unmarked Cole.
The defender, showing no sign of his goal drought going back to May 2010, calmly lifted a shot over the onrushing Begovic to finally break the deadlock.