Rodrygo gave the visitors an early lead before Kevin De Bruyne hit back for the holders to leave the match level at 1-1 on the night and 4-4 on aggregate. However, City's defence of the competition came to an end after Bernardo Silva and Mateo Kovacic saw spot-kicks saved by Madrid's unlikely hero Andriy Lunin.
The Ukrainian, who has deputised this season for the injured Thibaut Courtois, had been at fault for City's early opener in a thrilling first leg but more than made amends. City had not lost at home in the Champions League since 2018 but the holders were held at bay by a heroic defensive effort by the 14-time European champions despite having 34 attempts on goal.
Madrid were blown away by an early City blitz in a 4-0 defeat at the Etihad 11 months ago as Pep Guardiola's men went on to win the competition for the first time. City also edged a semi-final first leg thriller 4-3 on home soil two years ago only to be stunned by a late Madrid fightback in the return leg. This time Carlo Ancelotti's men flipped the script with an assured start that was rewarded in the opening goal.
Jude Bellingham plucked the ball out of the sky with an immaculate touch to set Real roaming down the right. Vinicius Junior picked out the unmarked Rodrygo and he tapped in the rebound after his first effort was parried by Brazilian international teammate Ederson. If City were slow to warm to their task they quickly had Madrid penned against the ropes but failed to land a telling blow for 76 minutes.
Erling Haaland failed to score for a fourth consecutive clash between the sides but has rarely come up closer than when his looping header came back off the crossbar and left Bernardo Silva no time to adjust to turn in the rebound. Lunin was forced
Read on besoccer.com