Tottenham entered the match with a 1-0 advantage from the first leg last week, but a quite stunning match saw City score four on the night.
Pep Guardiola's side thought that they had netted a decisive fifth in stoppage time when Raheem Sterling finished from inside the box, but the goal was disallowed following a VAR review, allowing Tottenham to advance to the semi-finals on the away-goals rule.
Spurs take on Dutch giants Ajax, who have eliminated both Real Madrid and Juventus, in the semi-finals of the competition, while the other clash will see Liverpool face Barcelona.
City's team showed four changes from the one that started the first leg, with Vincent Kompany, Bernardo Silva, Benjamin Mendy and Kevin de Bruyne coming in for Nicolas Otamendi, Fernandinho, Riyad Mahrez and Fabian Delph.
As for Tottenham, there was a start in midfield for Victor Wanyama with Harry Winks ruled out. Harry Kane's absence meant that Son Heung-min led the line with support from Lucas Moura, Christian Eriksen and Dele Alli, who suffered a broken hand in the first leg but was adjudged fit to take part.
It took just four minutes for City to make the breakthrough on the night with Sterling picking out the bottom corner with a wonderful effort from inside the Tottenham box.
The response from the visitors was incredible, though, with Son levelling the scores on the night in the seventh minute courtesy of a strike from the edge of the box, which Ederson perhaps should have saved.
Son then sent Tottenham ahead with a wonderful curling effort in the 10th minute as Mauricio Pochettino's side took a 3-1 lead in the tie during an incredible start to the match.
The crazy period of the contest was not over, however, and City made it 2-2 on the night in the 11th minute when Bernardo Silva's effort at the far post hit Danny Rose before dropping into the back of the net.
As expected, the play did settle in the immediate period that followed - City were dominating the ball, but opportunities were not arriving at the same rate as they did in the early moments.
That did not last for long, though, and the home side scored their third in the 21st minute when De Bruyne's stunning low cross was finished into the back of the net by Sterling to level the tie at 3-3 on aggregate.
Again, there was then a period of calm and that lasted until the end of the first half in terms of opportunities. There was a significant change in the 41st minute, however, with Moussa Sissoko being forced off with a knee problem - Fernando Llorente was his replacement and that meant a new role on the right for Son.
Son had the final shot of the first half after breaking into a dangerous position, but the ball flew wide of Ederson's post as the two teams headed down the tunnel at the end of an incredible opening 45 minutes.
City might have had the lead, but Tottenham were ahead on away goals entering the start of the second period, which was set up to be just as fascinating as the first but for potentially different reasons.
De Bruyne had the first shot of the second half in the 49th minute, although the Belgium international's effort was always rising over the Tottenham crossbar. Sterling then had a close-range effort for the home side, but Lloris was on hand to make a very smart save as opportunities started to arrive.
Lloris made an even better stop in the 54th minute to keep out a powerful strike from De Bruyne, but the pressure was relentless as Tottenham struggled to keep hold of the ball.
David Silva was next to come close for City as he headed over the crossbar in the 56th minute, before Ederson had to keep out a header from Llorente down the other end of the field.
Guardiola's side scored their fourth just before the hour, though, when De Bruyne drove into a dangerous position before picking out Aguero, who thumped his effort past Lloris from close range.
De Bruyne again played a key role to register his third assist of the night, but it was an emphatic finish from Aguero as City took charge of the tie with little over 30 minutes of football remaining.
Tottenham incredibly scored a third in the 73rd minute, though, when Llorente bundled a corner into the back of the net via his hip. The referee came across to look at a possible handball following a VAR check, but it was given and the visitors were back in control of the quarter-final tie.
Aguero fired wide of the post in the period that followed, before VAR had a look at a possible Kompany handball, but play continued with little over 10 minutes of normal time remaining.
Lloris then kept out a header from Aguero, before Ilkay Gundogan smashed over the Tottenham crossbar with little under five minutes of normal time remaining.
City thought that they had scored a fifth in the final moments when a mistake from Eriksen led to Aguero finding Sterling, who finished into the bottom corner.
Aguero was adjudged to have been offside following a VAR review, though, and Tottenham advanced to the final four of the competition on what was a quite incredible night of Champions League football.
MANCHESTER CITY (4-3-3): Ederson; Walker, Kompany, Laporte, Mendy (Sane 84'); D Silva (Fernandinho 63'), Gundogan, De Bruyne; B Silva, Aguero, Sterling
TOTTENHAM HOTSPUR (4-2-3-1): Lloris; Trippier, Alderweireld, Vertonghen, Rose (Sanchez 90'); Sissoko (Llorente 41'), Wanyama; Alli, Eriksen, Lucas (Davies 81'); Son body check tags ::