Nathan Ake's late goal gave Manchester City their first victory in six visits to Tottenham Hotspur Stadium and a place in the FA Cup fifth round.
City looked likely to have to settle a replay after missing a succession of chances before Ake scored their first goal at this stadium after five successive defeats with two minutes left as Spurs keeper Guglielmo Vicario failed to hold Kevin de Bruyne's corner under pressure from Ruben Dias.
It was a bitter blow to Spurs after a defiant rearguard action but just reward for City, who had been the better side only to miss the opportunities that had come their way before Ake bundled home from close range.
Spurs barely registered an attack threat, while City had an early Oscar Bobb strike ruled out for offside, Vicario also saving well from Bernardo Silva. De Bruyne was uncharacteristically wasteful with a golden opportunity after Pierre-Emile Hojbjerg had gifted possession to Phil Foden.
In a dramatic finale, with a replay looking certain, Ake struck to spark wild scenes of celebration among the 9,000 City fans who had made the journey to north London.
Man City's late show seals victory
Manchester City only arrived at Tottenham Hotspur Stadium 70 minutes before kick-off because of the heavy Friday night traffic in London - then left it late to clinch a win they thoroughly deserved on the balance of play.
Spurs were caught up in a rush of Manchester City pressure for much of the game but held out despite being forced back. It almost worked by earning a replay but Pep Guardiola's side are always likely to produce one moment that makes the difference. And so it proved here.
It may not have had the beauty that characterises so many of their goals, as Ake scored amid a near-post scramble, but this did not stop joyous scenes after the final whistle, with manager Guardiola especially animated.
City's triumph will taste even sweeter because it came at a stadium that had brought them nothing other than misery until this FA Cup fourth-round tie.
There is a clear sense that City are kicking into top gear, with some of their early play scintillating, giving off the formidable air that is their trademark at this stage of the season.
The impending return of striker Erling Haaland will only add to their confidence as they chase the Premier League, FA Cup and Champions League. For now, this is a win they will relish.
Spurs left frustrated as Maddison returns
Spurs would have been fortunate to come away with a replay from a game in which they were second best but to come so close and go out of the FA Cup will leave manager Ange Postecoglou and his players nursing real disappointment.
They relived their 1981 FA Cup final win over Manchester City, dramatically secured by Ricky Villa's mazy dribble to win a Wembley replay, when four members of that team - Osvaldo Ardiles, Glenn Hoddle, Graham Roberts and Paul Miller - were paraded at half-time.
There was to be no repeat here. Further glories will have to wait as the avenue for another trip to Wembley was closed off by this impressive City side, with Spurs' failure to score ending a run of 35 games without a blank and highlighting the absence of talismanic captain Son Heung-min, who is at the Asian Cup with South Korea.
Micky van de Ven was outstanding in defence while Vicario was secure until he could not hold on to De Bruyne's corner, giving Ake the chance to pounce. Spurs hoped in vain that the video assistant referee might detect a foul by Dias on Vicario but the decision to give the goal was correct.
Spurs must now turn their attentions to staying in touch with the Premier League's leading pack; they currently lie fifth. The return of James Maddison as a substitute after being out with an ankle injury since November will be a boost to that effort but this is a loss that will hurt.

Player of the match
FodenPhil Foden
with an average of 6.77
Tottenham Hotspur
Squad number37Player namevan de VenAverage rating6.51
Squad number17Player nameRomeroAverage rating6.13
Squad number38Player nameUdogieAverage rating6.08
Squad number23Player namePorroAverage rating6.06
Squad number13Player nameVicarioAverage rating5.89
Squad number16Player nameWernerAverage rating5.88
Squad number30Player nameBentancurAverage rating5.83
Squad number21Player nameKulusevskiAverage rating5.74
Squad number22Player nameJohnsonAverage rating5.71
Squad number5Player nameHøjbjergAverage rating5.51
Squad number10Player nameMaddisonAverage rating5.26
Squad number4Player nameSkippAverage rating5.17
Squad number44Player nameScarlettAverage rating4.77
Squad number9Player nameRicharlisonAverage rating3.68
Manchester City
Squad number47Player nameFodenAverage rating6.77
Squad number17Player nameDe BruyneAverage rating6.75
Squad number20Player nameBernardo SilvaAverage rating6.63
Squad number6Player nameAkéAverage rating6.32
Squad number11Player nameDokuAverage rating6.27
Squad number2Player nameWalkerAverage rating6.25
Squad number52Player nameBobbAverage rating6.09
Squad number16Player nameRodriAverage rating6.05
Squad number3Player nameRúben DiasAverage rating6.00
Squad number8Player nameKovacicAverage rating5.99
Squad number19Player nameÁlvarezAverage rating5.96
Squad number18Player nameOrtegaAverage rating5.93
Squad number24Player nameGvardiolAverage rating5.78
Line-ups
Tottenham
Formation 4-2-3-1
- 13VicarioBooked at 88mins
- 23PorroBooked at 90mins
- 17Romero
- 37van de Ven
- 38UdogieBooked at 59mins
- 30BentancurSubstituted forMaddisonat 73'minutes
- 5HøjbjergSubstituted forScarlettat 90+1'minutes
- 22JohnsonSubstituted forSkippat 72'minutes
- 21Kulusevski
- 16Werner
- 9Richarlison
Substitutes
- 4Skipp
- 6Dragusin
- 10Maddison
- 11Gil
- 12Emerson Royal
- 20Forster
- 33Davies
- 44Scarlett
- 58Santiago
Man City
Formation 4-2-3-1
- 18Ortega
- 2Walker
- 3Rúben DiasBooked at 70mins
- 6Aké
- 24GvardiolBooked at 84mins
- 16Rodri
- 8KovacicBooked at 56mins
- 47Foden
- 20Bernardo Silva
- 52BobbSubstituted forDokuat 65'minutesBooked at 90mins
- 19ÁlvarezSubstituted forDe Bruyneat 65'minutes
Substitutes
- 5Stones
- 10Grealish
- 11Doku
- 17De Bruyne
- 21Gómez
- 27Nunes
- 31Ederson
- 76Susoho
- 82Lewis
- Referee:
- Paul Tierney
- Attendance:
- 60,872
Match Stats
Live Text
Match ends, Tottenham Hotspur 0, Manchester City 1.
(Feed generated with FetchRSS)