Match ends, Manchester City 2, Borussia Dortmund 1.
Phil Foden's last-gasp strike gave Manchester City a crucial slender advantage in their Champions League quarter-final first leg against Borussia Dortmund at Etihad Stadium.
City's hopes of reaching the semi-final looked to be in the balance when Marco Reus gave Dortmund what looked like a priceless away goal with a cool finish from Erling Braut Haaland's pass six minutes from time.
Kevin de Bruyne, who had given City the lead with a crisp finish after 19 minutes, played his part once more in the final minute of normal time when his fine cross was touched back by Ilkay Gundogan for Foden to stroke a finish past Marwin Hitz.
It was a bitter blow for an enterprising Dortmund side, who will leave Manchester nursing a burning sense of injustice directed towards Romanian official Ovidiu Hategan after he controversially ruled out Jude Bellingham's second-half goal with City leading 1-0.
Bellingham beat Ederson to a throughball but after it appeared City's keeper kicked the teenager, the referee blew for a foul against Borussia with the England star racing towards an empty net - not even allowing the intervention of VAR which would have surely awarded a goal.
City, who had a first-half penalty award overturned by VAR, showed commendable strength of character and great determination to react to the blow of Reus' goal to score the winner and are now in pole position before the return leg in Germany.
- Man City post £126m loss for disrupted 2019-20 season
- Haaland appears to sign autograph for official
- 'Brilliant Foden has final word over fellow emerging superstar Haaland - for now'
- Listen and download the Football Daily podcast
Man City dig deep for victory
The Champions League has not been kind to Manchester City in the past and it looked, for five minutes at least, like they would be facing yet another uphill task in Germany after Reus equalised for Dortmund.
City may have been thinking their difficulties in Europe's elite competition had returned, but they deserve huge credit for mounting what effectively had to be an instant response to claw back the advantage.
This tie is not over by any means, not with Haaland such a massive threat even though he was relatively quiet here, but make no mistake the picture looked a lot healthier for City at the final whistle than it did when Dortmund's players celebrated wildly in an empty corner of the Etihad in the 84th minute.
And credit, too, to match-winner Foden as he kept getting into scoring positions despite squandering a couple of opportunities when he saw a shot saved by Hitz, then shot across the face of goal when he should have hit the target.
The joyous scenes on the pitch and among City's support staff and substitutes in the stands showed how much this goal meant. Guardiola's side would still have felt confident at 1-1 but now they have a precious lead to protect.
De Bruyne once again exerted his massive influence and he will be a figure of huge significance in the return as Guardiola finally tries to guide City into a Champions League semi-final.
Dortmund still have hope
Borussia Dortmund's players slumped to the turf in anguish as Foden's late low finish slipped beyond keeper Hitz into the far corner.
Once the disappointment has eased - and anger as well, as they will justifiably feel they got the rough end of a very poor decision - the Bundesliga side will still feel they are very much in this Champions League quarter-final.
They may have been struggling for form in recent weeks but they can be highly satisfied with this performance, especially as they still have a genuine game-changer in Haaland.
The much-coveted 20-year-old may not have been a constant threat but he showed in flashes why he is currently the most talked-about young player in the game.
Haaland set up a first-half chance for Bellingham, showed explosive pace and power to get ahead of Ruben Dias to bring a vital save from Ederson after the break then showed great touch to set up Reus' goal.
Where there is Haaland there is hope for Borussia Dortmund - and Manchester City will be well aware of that.
'We will go there to win' - what they said
Manchester City boss Pep Guardiola, speaking to BT Sport: "Better to win than draw. We are going there to win the game. In the first half we were not clever with the ball. The second half was much better.
"Dortmund is a typical club from the Champions League. We have one more game there and with the result 2-1, we will try to score the goals there to win. We are going to analyse what we have to do like we have done for four or five months. Every game we play to win."
Manchester City goalscorer Kevin de Bruyne, speaking to BT Sport: "They played really well with the ball. It causes some problems sometimes. I think in the first half we had a little bit of difficulty finding the chances but in the second half we created a few.
"We probably should have scored a little bit more but obviously when they came back to 1-1, that was a little shame but it happens. I think the reaction was really good so to get the win is good. We know 2-1 is a tricky score but at least we are ahead for the second leg."
Man City score another late, late winner - the stats
- Aged 20 years and 313 days, Phil Foden is the youngest Englishman to score a 90th-minute winning goal in a Champions League match, overtaking Wayne Rooney who was 21 years and 182 days when he scored the winner for Manchester United in a 3-2 win over AC Milan in April 2007.
- Since their first season in the Champions League in 2011-12, no team has more 90th-minute goals than Manchester City (17, level with Real Madrid).
- Marcos Reus is now Borussia Dortmund's outright top scorer in the Champions League with 18 goals. He was previously tied on 17 with Robert Lewandowski.
- Reus is also the first player to score a Champions League goal against Man City since Luis Diaz for Porto in October, ending City's run of 788 minutes without conceding in the competition (seven consecutive clean sheets before today).
- 3Rúben Dias
- 17De Bruyne
- 20Bernardo SilvaSubstituted forGabriel Jesusat 59'minutes
- 9Gabriel Jesus
- 2MoreySubstituted forMeunierat 81'minutes
- 22BellinghamBooked at 37mins
- 23CanBooked at 29mins
- 8DahoudSubstituted forDelaneyat 81'minutes
- 36KnauffSubstituted forReynaat 63'minutes
- 10T Hazard
- Ovidiu Hategan
- Shots on Target
Second Half ends, Manchester City 2, Borussia Dortmund 1.
Goal! Manchester City 2, Borussia Dortmund 1. Phil Foden (Manchester City) left footed shot from the left side of the six yard box to the centre of the goal. Assisted by Ilkay Gündogan.
Foul by Rúben Dias (Manchester City).
Raphael Guerreiro (Borussia Dortmund) wins a free kick in the defensive half.
Corner, Manchester City. Conceded by Mats Hummels.
Kevin De Bruyne (Manchester City) wins a free kick on the right wing.
Foul by Raphael Guerreiro (Borussia Dortmund).
Corner, Manchester City. Conceded by Raphael Guerreiro.
Goal! Manchester City 1, Borussia Dortmund 1. Marco Reus (Borussia Dortmund) right footed shot from the centre of the box to the bottom right corner. Assisted by Erling Haaland with a through ball.
Substitution, Borussia Dortmund. Thomas Meunier replaces Mateu Morey.
Substitution, Borussia Dortmund. Thomas Delaney replaces Mahmoud Dahoud.
Attempt missed. Phil Foden (Manchester City) left footed shot from the left side of the box misses to the right. Assisted by Riyad Mahrez.
Attempt saved. Phil Foden (Manchester City) left footed shot from outside the box is saved in the centre of the goal. Assisted by Kevin De Bruyne.
Attempt missed. Kevin De Bruyne (Manchester City) right footed shot from outside the box is close, but misses to the left. Assisted by Phil Foden.
Kevin De Bruyne (Manchester City) wins a free kick in the defensive half.
Foul by Manuel Akanji (Borussia Dortmund).
Foul by Rodrigo (Manchester City).
Emre Can (Borussia Dortmund) wins a free kick in the defensive half.
Attempt blocked. Ilkay Gündogan (Manchester City) right footed shot from outside the box is blocked. Assisted by Gabriel Jesus.