Tottenham ended Manchester City's quadruple bid as Fernando Llorente's goal settled a see-sawing free-scoring Champions League quarter-final.
The game began at a frantic pace with five goals inside 21 minutes as Raheem Sterling and Son Heung-Min both scored twice and Bernardo Silva found the net.
Sergio Aguero's goal after the break put City ahead in the tie, but Llorente bundled in to put his side back ahead.
In a dramatic late twist, Sterling saw an injury-time winner ruled out by VAR.
Spurs will play Ajax in the last four.