Real Madrid will face Liverpool in the 2021/22 Champions League final, after they completed an incredible turnaround to beat Manchester City 3-1 on the night and 6-5 on aggregate on Wednesday evening.
A second-half strike from Riyad Mahrez had seemingly ensured City's progression, but Rodrygo grabbed a two-minute brace at the death to sensationally send the game to extra time.
In the additional period, Karim Benzema weaved his magic, winning and then converting a penalty to complete an all-time great European comeback – Real's third of the season, after similar heroics against Paris Saint-Germain and Chelsea in previous rounds.
The Santiago Bernabeu was at fever pitch by the time kick off arrived and passions spilled over early on when Luka Modric and Aymeric Laporte were both booked for an off-the-ball incident inside 10 minutes.
After a few half-chances, Vinicius Junior was had the game's first presentable opportunity. A long ball was cushioned down to Karim Benzema by Federico Valverde, who then offloaded for the Brazilian to shoot well over the bar.
City responded well to this scare, with Bernardo Silva seizing upon a slip from Eder Militao and drawing a fine save from Thibaut Courtois at the front post.
Before the break Courtois was forced into action again when Foden struck a fierce volley from outside the box, with the teams heading down the tunnel level at 0-0.
Straight from the second-half kick-off Real pieced together a free-flowing move which ended with Vinicius failing to control his effort at the back post when he should have made the net bulge.
The hosts continued to press for the goal that would draw them level on aggregate and Modric was found unmarked on the edge of the box by Vinicius, only for a poor touch to let the Croatian down.
The chances then dried up for Los Blancos and they were made to pay for their lack of urgency 17 minutes from time. Bernardo Silva weaved his way forward before laying it off perfectly for Mahrez to lash home.
This goal rather knocked the stuffing out of Real at first and Carlo Ancelotti soon brought on several attackers as they searched for a goal.
Instead, it was City who looked like extending their lead. Substitute Jack Grealish had an effort cleared off the line and he found time to shoot the wrong side of the post too.
Then, out of nowhere, Real found a moment of inspiration. Eduardo Camavinga swung in a deep cross which was met by Benzema, and Rodygo nipped in front of Ederson to turn the ball home. Scarcely-believable scenes followed a few seconds later with Rodrygo rising high in the box to glance home Dani Carvajal's cross. Yes, really. Extra time followed.
Three minutes into the additional period Real were awarded a penalty when Ruben Dias brought down Benzema in the box. There was no Panenka this time, but the outcome was the same with the Frenchman rolling the spot kick into the bottom corner for his 15th Champions League goal of the campaign.
Right on the stroke of half-time in extra time, a Joao Cancelo cross was flick towards goal by Phil Foden and after Courtois saved, Fernandinho was excruciatingly close to turning in the rebound.
This would turn out to be City's best chance in extra time, as they exited the competition having been within seconds of reaching the final a little over half an hour previously. What a truly bonkers game of football.
Here are your player ratings.
1. Real Madrid (4-3-3)
Thibaut Courtois (GK) - 7/10 - Needed strong wrists to deny Bernardo Silva early on and was alert throughout. Mahrez's effort had too much power to stop.
Dani Carvajal (RB) - 7/10 - Still not entirely convincing defensively. Booked. eventually. Set up the first Real goal with a great cross. His delivery was excellent in general.
Eder Militao (CB) - 6/10 - A couple of shaky moments early on but shook off an evident knock to do fairly well. His body eventually gave up on him in extra time.
Nacho Fernandez (CB) - 6/10 - Were some concerns about him replacing David Alaba but he was perfectly adequate. Perhaps could have closed down Bernardo Silva earlier but stood firm right until the end.
Ferland Mendy (LB) - 6/10 - Needed to offer more in the final third before the 90-minute mark. Made a vital goal-line clearance from Grealish, though.
Luka Modric (CM) - 6/10 - Picked up an early and unnecessary booking. Made to look his age off the ball.
Casemiro (CM) - 5/10 - Almost injured himself fouling Foden - which would have been very on brand. Gave Bernardo Silva too much space for the goal.
Toni Kroos (CM) - 5/10 - Far too safe in his passing. Taken off as Real chased the game in the second half.
Federico Valverde (RW) - 5/10 - Lots of energy and purpose but he lacked the quality to make things happen for his side.
Karim Benzema (ST) - 8/10 - Looked a yard or so off it, compared to his usual standards early on. Burst into life as he always does though, setting up the first and then scoring the third from the spot after winning the penalty.
Vinicius Junior (LW) - 6/10 - Lacked a clinical edge and his touch was loose at times. Like Benzema, he did burst into life when things became desperate.
SUB: Rodrygo (RW) - 9/10 - Two goals to send the game to extra time. The perfect substitute cameo.
SUB: Marco Asensio (AM) - 6/10 - Flicked the ball onto Rodrygo's head for him to score his second. We're sure he meant it.
SUB: Eduardo Camavinga (CM) - 8/10 - His cross created Real's first. Excellent sub.
SUB: Dani Ceballos (CM) - N/A
SUB: Lucas Vazquez (RWB) - N/A
SUB: Jesus Vallejo (CB) - N/A
2. Man City (4-3-3)
Ederson (GK) - 3/10 - Really not a lot to do for 90 minutes. Was then beaten twice in quick succession, and then for a third time from the spot. Could have done better for some of the goals.
Kyle Walker (RB) - 7/10 - Rushed back from injury but you couldn't tell. Coped easily with Real before a niggle forced him off on the hour.
Ruben Dias (CB) - 4/10 - Dealt well with Benzema for the majority but he will always be remembered for giving away the decisive penalty.
Aymeric Laporte (CB) - 5/10 - Threw himself to the ground in an embarrassing attempt to get Modric sent off early on and ended up getting booked. That poor piece of acting aside, he did little wrong.
Joao Cancelo (LB) - 5/10 - Things did not work for him in the final third. Beaten too easily when it mattered near the end.
Bernardo Silva (CM) - 7/10 - Popped up all over the place to knit things together. Created what should have been the clincher with his positive run forward.
Rodri (CM) - 6/10 - Kept his side ticking over from the base of midfield.
Kevin De Bruyne (CM) - 7/10 - His side's creative engine room as usual. Finished proceedings with three key passes before being subbed.
Riyad Mahrez (RW) - 8/10 - Once again proved he deserves to be labelled 'world class' with a goal that should have been enough to win this tie.
Gabriel Jesus (ST) - 5/10 - Not his night offensively. Taken off in normal time having fired off just two shots.
Phil Foden (LW) - 6/10 - A couple of bright moments. Went close with a header in extra time.
SUB: Ilkay Gundogan (CM) - 5/10 - Could not make the difference.
SUB: Oleksandr Zinchenko (RB) - 5/10 - Wasted a free-kick opportunity at the end of normal time.
SUB: Jack Grealish (RW) - 4/10 - So close to settling it twice. Should have done better with his second chance.
SUB: Fernandinho (CM) - 5/10 - Went ridiculously close to scoring in extra time.
SUB: Raheem Sterling (ST) - N/A
For more from Matt O’Connor-Simpson, follow him on Twitter