Manchester City is on course to reach a second successive Champions League final after beating Real Madrid 4-3 in a thrilling and one of the best of all-time matches.
Kevin de Bruyne's diving header and Gabriel Jesus' calm finish gave City a 2-0 lead inside the opening 11 minutes.
Karim Benzema volleyed home for Real, but Phil Foden's header made it 3-1.
Real's Vinicius Jr scored an individual goal, Bernardo Silva blasted in City's fourth before Benzema's incredible 'Panenka' penalty following Aymeric Laporte's handball.
Manchester City has never won the European Cup or Champions League and lost 1-0 to Chelsea in last season's final, but produced a superb performance to take advantage of Spain.
However, manager Pep Guardiola will be annoyed they did not secure a wider winning margin after leading 2-0, 3-1, and 4-2, but Benzema's incredible penalty gave the Spanish league leaders hope of turning the tie around at the Bernabeu on Wednesday, 4 May.
Liverpool faces the Spanish side, Villarreal, in this year's other semi-final, with the first leg at Anfield on Wednesday.
The final will be held at the Stade de France in Paris on Saturday, 28 May.