Twenty-four hours after Manchester United had claimed their second win of the season, beating Southampton 2-0 at Old Trafford, two first-half goals from Sergio Aguero put their nearest rivals City in control at half-time.
A penalty for Stoke, the second awarded for a foul at a corner in the match, converted by Bojan Krkic early in the second half put the home team back in the match. But they were unable to grab an equaliser and Nolito came on to secure the three points with two late goals.
The visitors made a high-tempo start, and went ahead through Aguero's penalty on 22minutes.
Ryan Shawcross was penalised for holding Nicolas Otamendi and Aguero was sure from the spot, despite missing two penalties in City’s midweek UEFA Champions League play-off victory at Steaua Bucharest.
Aguero doubled City’s lead with a well-taken header from Kevin De Bruyne's free-kick nine minutes before half-time.
But Stoke rallied and less than three minutes into the second half. Raheem Sterling was penalised for holding Shawcross, just as the Stoke captain had been in the first half.
Bojan calmly dispatched the penalty and Stoke had renewed hope.
Mark Hughes’s men may have had fresh belief, but City remained a threat on the counterattack, and enjoyed the better chances in the second half.
It was Iheanacho’s determination that helped make the game safe, as he linked with David Silva and squared for Nolito to net his first Premier League goal. Sterling set up Nolito deep into stoppage-time for City’s fourth and his second.
Man of the match: John Stones (Man City)