Phil Foden's 90th minute winner gave the City 2-1 lead in the first leg of their quarter-final tie against Borussia Dortmund.
Manchester City's Phil Foden has grabbed a last-minute winner as they beat Borussia Dortmund 2-1 in their Champions League quarter-final first leg after Marco Reus netted a late equaliser for the Germans at The Etihad.
While the visitors will be bitterly disappointed to have conceded a second goal so late, Dortmund will take heart from the away goal and their overall performance and believe they have a real chance in next Wednesday's return game.
City lacked their usual sharpness in the final third, with Pep Guardiola's false-nine tactic not delivering benefits on this occasion, but Foden's 90th minute goal gives them the edge.
Much of the focus before the game was on Dortmund's prolific 20-year-old Norwegian forward Erling Haaland and while he was relatively quiet he did force a fine save out of Ederson before creating Dortmund's equaliser.
City had taken a 19th minute lead with a classic counter-attacking move finished off by playmaker Kevin De Bruyne after Dortmund's former Liverpool midfielder Emre Can had given the ball away to Riyad Mahrez on the halfway line.
PEP 💬 I want to congratulate the players. How they stuck together. The quality of the opponent, not because we were not able to do it, how much we fought and stuck together to the end. We won in the end, now we know each other quite well. pic.twitter.com/jk47QafKkW— Manchester City (@ManCity) April 6, 2021
Mahrez started the break, finding De Bruyne who burst forward and fed Foden on the left, the Englishman's cross to the back post was over hit but Mahrez recovered to pick out De Bruyne in the middle and the Belgian slotted home.
Guardiola's side then had a penalty awarded but correctly overturned by VAR after a challenge by Can on Rodri.
Romanian referee Ovidiu Hategan believed Can's foot had struck Rodri in the face but replays showed it merely brushed his leg despite Rodri falling to the ground holding his face.
The referee was at the centre of attention again when Ederson hesitated and Dortmund's Jude Bellingham nipped in and slotted the ball into the net but the 17-year-old was harshly ruled to have fouled the Brazilian.
Television replays showed Bellingham had played the ball and in fact it was Ederson who had made contact with the English youngster but VAR did not send the referee to the monitor.
Fuelled by that injustice but also given some belief that City's defence, which had not conceded a goal in the competition since the opening game of the group stage in October, could be breached, Dortmund were positive after the break.
Ederson came to City's rescue early in the second half, saving from Haaland with an outstretched foot as the German side pushed forward positively.
City had several chances to extend their lead though and paid the price for their uncharacteristic lack of precision in front of goal when Dortmund struck six minutes before the end.
Haaland's clever pass on the half-turn found Reus, who had timed his run perfectly and beat Ederson with a composed finish.
But then Foden, who had been the main culprit in wasting chances, made amends with a clinical finish from close range after being set up by Ilkay Gundogan following a deep ball from De Bruyne.
City would have had hoped for a more convincing victory but, after a night when they did not really hit their usual heights, they will take a 27th win in 28 games in all competitions and a slim advantage into the second leg.