Real Madrid fought back from the brink of elimination to beat Manchester City 3-1 after extra time and 6-5 on aggregate in an enthralling and dramatic Champions League semi-final on Wednesday.
City led 1-0 on the night and 5-3 on aggregate when Riyad Mahrez scored after 73 minutes but Real substitute Rodrygo equalised in the last minute of normal time and headed home one minute later to level the tie at 5-5, reports Reuters.
Five minutes into extra time Karim Benzema converted a penalty awarded for a foul on him by Ruben Dias and Real, the record 13-times European champions, held the shell-shocked English side at bay to reach the final.
Real will play Liverpool on 28 May in Paris, a repeat of the 2018 final in Kyiv which the Spanish team won 3-1.
It was another superb rearguard action by Real who came from behind for the third consecutive time in this season Champions League knock-out stage to stay on course to win Europe's most prestigious club competition for the fifth time in the last nine years.
After a breathtaking first leg packed with goals and individual brilliance from both sides, the return game was the complete opposite.
City worked tirelessly to subdue their hosts who failed to manage a shot on target on the first half.
With Real fast running out of ideas, Bernardo Silva broke through the middle of their defence and laid the ball off for Mahrez to finish and City looked certain to stay on course to win the trophy for the first time.
But as they did against Paris St Germain in the round of 16 and Chelsea in the quarter-finals, Real conjured up the magic they required.
Rodrygo finished from close range to give them a lifeline and the Brazilian headed home moments later to send the Bernabeu crowd into raptures before Benzema completed the turnaround.