UEFA Champions League holders Manchester City and Premier League leaders Arsenal both drew their quarter-final first legs against Real Madrid and Bayern Munich respectively on a sensational night of European football.
City led twice in Spain, but a late wonder strike from Federico Valverde ensured it finished 3-3, while Arsenal substitute Leandro Trossard salvaged a 2-2 draw against Bayern in Arsenal's first appearance at this stage of the competition since 2010.
City held in epic contest against Real
There were four changes to the Man City side that won 4-2 at Crystal Palace, with Manuel Akanji, Mateo Kovacic, Bernardo Silva and Phil Foden coming in for Rico Lewis, Kevin De Bruyne, Oscar Bobb and Julian Alvarez. Josko Gvardiol was fit to start, having been withdrawn at half-time last Saturday.
Pep Guardiola revealed before the match that De Bruyne was in line to start, but after feeling unwell upon his arrival at the Santiago Bernabeu, the Belgian was named among the substitutes.
City got off to a great start after only two minutes when Silva scored with a superb free-kick from 30 yards out, deceiving Real goalkeeper Andriy Lunin with a low near-post strike.
But a Ruben Dias own goal and a Rodrygo strike put Real in front after 14 minutes.
Foden levelled on 66 minutes with a rasping shot into the top-left corner from 20 yards. It was his sixth goal from outside the penalty area this season; the most of any player for a Premier League club across all competitions.
City then retook the lead five minutes later through Gvardiol, who fizzed a right-footed shot into the bottom-right corner from just outside the box to score his first goal for the club.
Guardiola's men were again unable to hold onto their advantage, though, with Valverde firing a sensational angled shot past Stefan Ortega in the 79th minute.
City were dealt a potential blow when Foden limped off during the latter stages, with Luton Town up next on Saturday in the Premier League before the second leg against Real at the Etihad Stadium on Wednesday 17 April.
But Guardiola allayed fears of a serious injury when speaking after the match, describing the issue as a "knock".
City will be hoping for a repeat of last season's semi-final when they beat Real 4-0 at home in the second leg after drawing the first leg, which finished 1-1 on that occasion.
Substitutes salvage a draw for Arsenal
Mikel Arteta made two changes from the side that beat Brighton & Hove Albion 3-0 last weekend, with Jakub Kiwior and Gabriel Martinelli starting in place of Oleksandr Zinchenko and Gabriel Jesus.
Former Tottenham Hotspur star Harry Kane was named in the Bayern Munich side, with Eric Dier, who is on loan from Spurs, also in the starting XI.
Arsenal went in front after 12 minutes through Bukayo Saka, who ran on to Ben White's well-placed pass before bending a first-time shot into the bottom-left corner.
But the home side's lead only lasted six minutes, with former Arsenal player Serge Gnabry slotting past David Raya.
Bayern were then awarded a penalty following a foul by William Saliba on former Man City winger Leroy Sane, and Kane sent Raya the wrong way to score, becoming the outright leading goalscorer against Arsenal at Emirates Stadium since it opened in 2006.
Arteta sent on Jesus and Trossard midway through the second half in search of an equaliser, and the pair duly combined to make it 2-2, with the Brazilian skilfully making space in the penalty area before laying the ball off to Trossard, who tucked the ball low beyond Manuel Neuer.
Saka went down under a challenge from Neuer inside the penalty area deep into added time, but no penalty was awarded, with the Arsenal star still on the floor when the final whistle was blown.
Arsenal are back in action on Sunday, hosting Aston Villa in the Premier League, before the second leg against Bayern, also on Wednesday 17 April.