City got off to the perfect start when Raheem Sterling opened the scoring in the fourth minute, the winger cutting in from the left flank before curling home a stunner.
However Spurs hit back three minutes later when Son Heung-min latched onto a weak Aymeric Laporte clearance and his effort found its way through Ederson for the equaliser before the South Korean gave Spurs the lead.
City were level again when Bernardo Silva’s finish somehow beat Hugo Loris and then Sterling grabbed his second to score the game’s fifth goal in an explosive first half.
Sergio Aguero scored the hosts’ fourth and it looked like that would be enough to seal their last-four spot but then substitute Fernando Llorente bundled in a vital third for Spurs.