Match ends, Manchester City 1, Paris Saint Germain 0.
Manchester City are into the semi-finals of the Champions League for the first time after Kevin de Bruyne's late strike sealed a thrilling win over Paris St-Germain.
After a 2-2 first-leg draw in Paris last week, the tie remained in the balance in Manchester thanks to Sergio Aguero's missed penalty for City in the first half.
The home side had Joe Hart to thank for three fine saves at 0-0, notably a ferocious Zlatan Ibrahimovic free-kick that the England goalkeeper clawed to safety.
But, roared on by a capacity crowd of 53,039 that supplied an unforgettable atmosphere, City held their nerve at the back before De Bruyne's decisive strike 15 minutes from time with their only shot on target.
The final whistle brought scenes of pure emotion from the fans at Etihad Stadium, who were already in uncharted territory.
England's last remaining representatives in Europe's elite club competition had never reached the quarter-finals before this season - now they can dream of the final in Milan.
First they can look forward to Friday's semi-final draw, after winning what was viewed as the battle of Europe's richest clubs with a PSG side who have now fallen at the last-eight stage for four successive seasons.
- 'Personal pride for Pellegrini and a giant step forward for City'
- Pellegrini targets Champions League glory
- Relive Tuesday's Champions League action
- Football Daily podcast: 'De Bruyne worth his weight in gold'
- Listen to BBC Radio 5 live's commentary of the game's best moments
How City got the shut out they needed
City's defence has been much maligned this season and their performance in Paris in particular meant a clean sheet looked a long shot in this second leg.
The main reason they achieved one was Hart but, on this occasion, their back four also deserve immense credit.
Their full-backs coped with PSG's wide players, whether it was wing-backs Maxwell and Gregory van der Wiel in a 5-3-2 formation in the first half, or orthodox wingers Lucas and Angel di Maria in a 4-4-2 after the break.
At centre-half, Nicolas Otamendi and Eliaquim Mangala had kept just three clean sheets in 17 previous games together this season, and one of those was the 17 minutes they played together against Dynamo Kiev in the last 16.
But between them they barely gave Ibrahimovic a sniff of goal in open play and nullified PSG's main threat until he finally found the net just before the final whistle.
Sadly for the enigmatic Sweden striker, the offside flag had long since been raised.
Aguero v Ibrahimovic
Ibrahimovic was not the only striker to draw a blank.
His battle with Aguero was much-hyped before the match, notably by City's own poster campaign to drum up ticket sales, but again this dual of the super-strikers disappointed.
Like Ibrahimovic in the first leg, Aguero missed a penalty - and by some margin. After being tripped by Kevin Trapp, the Argentina international fired well wide of the target to the disbelief of the home fans.
While Aguero's influence was then confined to his industry, Ibrahimovic fired in two free-kicks as he attempted to add to his tally of 39 goals from 42 games this season - but Hart saved both of them.
Instead it was De Bruyne who would supply the precise finish from 20 yards, with the £55m Belgium forward again showing his worth to City with another fine display since his return from injury.
Man of the match - Joe Hart
The stats you need to know
- Manchester City have become the 10th English club to make a Champions League/European Cup semi-final (after Arsenal, Aston Villa, Chelsea, Derby, Leeds, Liverpool, Manchester United, Nottingham Forest and Tottenham).
- City are only the fourth English side to reach the Champions League semi-finals since 2009-10 (Manchester United 2010-11, Chelsea 2011-12, Chelsea 2013-14).
- Sergio Aguero has missed two of his past three penalties in the Champions League for City after scoring all of the previous five for them in the competition.
- Kevin de Bruyne has now had a hand in 27 goals in all competitions for City this season (15 goals, 12 assists) - a joint-high for the club alongside Aguero.
- PSG have been knocked out in the quarter-finals in their past four Champions League campaigns.
- PSG have won only one of their eight European away games against English opposition (W1 D3 L4).
The draw for the Champions League semi-finals is on Friday, with the ties to be played on 26-27 April and 3-4 May. The final is in Milan on 28 May.
PSG, who are 28 points clear at the top of Ligue 1 and have already sealed the defence of their French title, host Caen on Saturday (16:00 BST). City, still looking to secure a top-four Premier League place and Champions League football next season, travel to play Chelsea at Stamford Bridge on the same day (17:30 BST).
- 25FernandinhoBooked at 72mins
- 17De BruyneSubstituted forY Touréat 84'minutes
- 21SilvaSubstituted forDelphat 87'minutes
- 10AgüeroSubstituted forIheanachoat 90+3'minutes
- 42Y Touré
- 16TrappBooked at 29mins
- 19AurierSubstituted forPastoreat 61'minutesBooked at 67mins
- 2Thiago Silva
- 23Van der WielBooked at 68mins
- 8MottaSubstituted forLucas Mouraat 44'minutes
- 11Di María
- 17Cabelino Andrade
- 7Lucas Moura
- Carlos Velasco Carballo
- Shots on Target
Second Half ends, Manchester City 1, Paris Saint Germain 0.
Foul by Lucas Moura (Paris Saint Germain).
Gaël Clichy (Manchester City) wins a free kick in the defensive half.
Substitution, Manchester City. Kelechi Iheanacho replaces Sergio Agüero.
Attempt missed. Yaya Touré (Manchester City) right footed shot from outside the box misses to the right. Assisted by Jesús Navas.
Foul by Edinson Cavani (Paris Saint Germain).
Fernandinho (Manchester City) wins a free kick in the defensive half.
Offside, Paris Saint Germain. Javier Pastore tries a through ball, but Zlatan Ibrahimovic is caught offside.
Foul by Adrien Rabiot (Paris Saint Germain).
Yaya Touré (Manchester City) wins a free kick in the defensive half.
Maxwell (Paris Saint Germain) wins a free kick on the left wing.
Foul by Yaya Touré (Manchester City).
Substitution, Manchester City. Fabian Delph replaces David Silva.
Offside, Paris Saint Germain. Adrien Rabiot tries a through ball, but Zlatan Ibrahimovic is caught offside.
Javier Pastore (Paris Saint Germain) wins a free kick in the defensive half.
Foul by Fernandinho (Manchester City).
Hand ball by Gaël Clichy (Manchester City).
Substitution, Manchester City. Yaya Touré replaces Kevin De Bruyne.
Thiago Silva (Paris Saint Germain) wins a free kick in the defensive half.