Harry Kane gave us the lead from the penalty spot eight minutes into the second half after Raheem Sterling was adjudged to have handled Danny Rose's cross.
City substitute Kelechi Iheanacho equalised on 74 minutes but we won it seven minutes from time when Erik Lamela sent birthday boy Christian Eriksen through to slot past Joe Hart.
Hugo Lloris got his fingertips to a late cross into our box with David Silva then blazing over as we held on to claim all three points.
Manchester City (4-2-3-1): Hart; Zabaleta, Kompany (c), Otamendi, Clichy (Kolarov 74); Fernandinho, Fernando (Iheanacho 66); Silva, Toure, Sterling; Aguero. Substitutes (not used): Caballero, Demichelis, Celina, A Garcia, M Garcia.
Spurs (4-2-3-1): Lloris (c); Walker, Alderweireld, Wimmer, Rose; Dembele, Dier; Alli (Lamela 81), Eriksen, Son (Carroll 72); Kane (Chadli 89). Substitutes (not used): Vorm, Davies, Trippier, Mason.
Goals: Manchester City – Iheanacho 74. Spurs – Kane 53 (pen), Eriksen 83.
Yellow cards: Manchester City – Kompany 46. Spurs - Dier 45, Wimmer 56, Carroll 76.
Referee: Mark Clattenburg.