A goal early in either half from David Silva proved the difference in the end, as the Citizens remained on course to seal the top-flight crown at home to Manchester United next month.
From their first meaningful attacking move of the match, Man City took the lead via a composed Silva finish past Jack Butland after being picked out 12 yards from goal by returning winger Raheem Sterling.
The visitors were seeing plenty of the ball, stringing together well over 200 passes with a quarter of the match played, yet in the blink of an eye it could easily have been all square.
Stoke's most dangerous player in Xherdan Shaqiri got the better of makeshift left-back Oleksandr Zinchenko and spotted Badou Ndiaye on the edge of the box, with the Senegalese midfielder's deflected shot spinning inches wide.
The league leaders soon asserted their authority on the contest, however, with Gabriel Jesus failing to convert from a headed chance a few yards out and Butland getting down to push aside Fernandinho's edge-of-the-box drive.
In a near carbon copy of the first half, Man City found the net through their first shot of the second 45, as Silva exchanged passes with Jesus and knocked the ball past an outrushing Butland to double his personal tally for the evening.
Fernandinho then blasted into the side-netting when he had teammates better positioned alongside him and Butland was required to save shots from Sterling and Zinchenko in quick succession.
Sane was the next to come close to netting the Citizens' third with his curler, ending agonisingly close to the bottom corner, but Stoke were still in the match and should have pulled one back through Eric Maxim Choupo-Moting 25 minutes from time.
The Stoke attacker lifted the ball over the crossbar from a good position after the visiting side failed to clear their lines from a free kick, and a chance came and went for Sane up the other end - Butland again coming out on top in that personal battle.
Man City's profligacy continued in the final 10 minutes, with Sterling taking too long to get a shot away when running through on goal, though in the end it would not come back to haunt them as they saw things through with ease.
STOKE CITY (4-3-3): Butland; Bauer, Zouma, Martins Indi, Stafylidis; Badou, Cameron (Sobhi 68'), Allen; Shaqiri, Jese (Crouch 63'), Choupo-Moting
MANCHESTER CITY (4-3-3): Ederson; Walker, Kompany, Otamendi, Zinchenko; Fernandinho, D.Silva, De Bruyne; Sterling (B.Silva 85'), Jesus (Gundogan 91'), Sane