In an enthralling contest, Christian Eriksen cancelled out Sergio Aguero's opener - with four penalties being awarded after that.
Aguero scored one and saw another saved by Hugo Lloris, before Roberto Soldado's own spot kick was kept out by Joe Hart in the second period.
Federico Fazio then conceded another, being sent off in the process, with Aguero converting to increase his side's lead. Aguero then took his personal tally to four as he completed the scoring from open play.
City: Hart; Sagna, Kompany, Demichelis, Clichy; Navas, Fernando (Toure, 77), Lampard (Fernandinho, 28), Milner; Silva (Jovetic, 70); Aguero. Substitutes (not used): Caballero (GK), Kolarov, Boyata, Dzeko.
Spurs: Lloris; Dier, Fazio, Kaboul (C), Rose; Capoue (Dembele, 60), Mason (Vertonghen, 69); Chadli, Eriksen, Lamela (Townsend, 60); Soldado. Substitutes (not used): Vorm, Stambouli, Adebayor, Kane.
Goals: City - Aguero (13, 20 pen, 68 pen, 75). Spurs - Eriksen (15).
Yellow cards: City - Navas. Spurs - Mason, Dier.
Red card: Spurs - Fazio.
Referee: Jonathan Moss.