Erling Haaland scored his 48th goal of the season as Manchester City weathered a storm to reach the Champions League semi-finals with a 1-1 draw at Bayern Munich.
The prolific Norwegian recovered from missing a penalty to strike in the 57th minute of tense quarter-final second leg at the Allianz Arena on Wednesday as City progressed 4-1 on aggregate.
Joshua Kimmich registered Bayern’s first goal of the tie with a late penalty but the result was already beyond doubt with City setting up a replay of last year’s semi-final against holders Real Madrid.
Prior to Haaland’s goal effectively killing off the tie, the night had been eventful with Bayern spurning a number of chances and Haaland firing over from the spot.
There was also confusion as Dayot Upamecano was sent off for fouling Haaland only to be reprieved because the City forward had been offside.
Bayern were clearly stung by last week’s 3-0 loss at the Etihad Stadium and were determined to go down fighting.
They began with belief and, feeding off the energy of a boisterous atmosphere, took the game to City.
Kingsley Coman twice got clear down the right in the opening minutes but his final ball was lacking.
The visitors survived a bigger scare when former City winger Leroy Sane raced through on goal but shot wide attempting to fire low past Ederson.
The excitement perhaps got to Bayern’s on-loan City full-back Joao Cancelo as he came up against his parent club, with the Portuguese booked for a bad challenge on international team-mate Bernardo Silva.
There was drama at the other end when Upamecano was shown a red card for tripping Haaland as he broke clear but the decision was overturned after a flag was raised.
Upamecano had another let-off after he was adjudged to have handled an Ilkay Gundogan shot.
Bayern’s players did their best to delay the resulting penalty and, when it was finally taken, Haaland blazed over the bar.
That miss gave Bayern renewed hope and they finished the first half strongly with Coman firing at Ederson and Sane, who earlier had a free-kick saved, shooting wide from distance. Cancelo and Eric Maxim Choupo-Moting were also denied at close range.
Tempers frayed before the interval and Gundogan and Kimmich were booked after a coming-together.
Haaland had another opportunity after the break as Bayern, in chasing the tie, began to get stretched but he shot straight at Yann Sommer.
The hosts went close again as a Coman effort squirmed through Ederson’s grasp and rolled across goal but City cleared and Haaland made no mistake at the third time of asking.
Again the Bayern defence was caught out as Kevin De Bruyne led a charge. The Belgian calmly slipped in Haaland and, after skipping around a challenge, he finished emphatically from in front of goal.
That put the tie beyond doubt but Bayern were not quite done. Mathys Tel had a goal chalked off for offside before Kimmich struck from the spot seven minutes from time after Manuel Akanji was harshly penalised for handball.
Bayern boss Thomas Tuchel had to watch the closing minutes from the stands after being shown a red card for letting his frustrations get the better of him.