Scoring for the very first time in their sixth visit to the Tottenham Hotspur Stadium, City missed a host of presentable chances in another frustrating trip to Spurs.
But Nathan Ake scored from a corner in the 88th minute to spare Pep Guardiola's side's blushes and knock Tottenham out.
Dom Smith was at the Tottenham Hotspur Stadium to rate the Manchester City performances…
Read the situation well when Pedro Porro tried to square for a Richarlison tap in. Otherwise a quiet night.
Busier in the first half, but rarely made an error on another strong evening for the England right-back.
Defensively solid and an important intervention to hold off Guglielmo Vicario for City's late winner.
Nathan Ake 8
A couple of really nice diagonal long balls to Phil Foden showed Ake's accuracy. Got City out of jail with a late winner.
Josko Gvardiol 6
A useful outlet on the left for Guardiola's side, but the poor quality of his crosses did not match his willingness to get forward. Booked.
Passed sensibly and accurately as ever, on a night when his midfield partner took the limelight.
Was City's best player on the night. Rode tackles as though the player diving in wasn't there. Silky as you like. Booked for a late challenge on Destiny Udogie.
Went on a handful of really nice runs down the right.
Denied by a Micky van de Ven block early in the second half after he gave the defender too much time to get across. Should have scored.
Phil Foden 6
Lively in the first half and set free by his team-mates even more often in the second.
Some nice touches in the first half and unlucky with his offside goal. Growing in a City shirt with every passing game.
Jeremy Doku (Bobb, 65') 5
Slipped over a few times, tested Vicario once. Was booked.
Kevin De Bruyne (Alvarez, 65') 5
One inexplicable miss looked for all the world to be heading in. Surely starts their next game.
Not used: Ederson, Stones, Grealish, Gomez, Nunes, Susuho, Lewis