Dejan Kulusevki slog till redan efter fyra minuter och gjorde därmed sitt första mål för Tottenham, i sin första start.
Tottenham såg ut att gå mot seger med 2–1 när försvararen Cristian Romero tog med handen i straffområdet, och domaren pekade på straffpunkten.
Riyad Mahrez stegade fram, och kvitterade till 2–2 i den 92:a minuten.
Gästerna från London hade dock svar på tal. Kulusevski tog sig fram längs högerkanten och chippade in ett inlägg, som Harry Kane nickade i mål när matchklockan tickade upp mot 96 minuter.
Det blev också segermålet.
Manchester City åkte därmed på sin första förlust i ligan sedan den 30 oktober i fjol.