Late goals from Luis Diaz and Michael Olise meant Bayern Munich finally got the better of Real Madrid in another enthralling game Wednesday to march into the Champions League semifinals.
Real's Arda Güler scored twice, but Bayern won 6-4 on aggregate in the quarterfinal after a 4-3 second-leg victory in Munich that will live long in the memory. They face holders Paris Saint-Germain in the last four in late April and early May.
A terrible first-minute kick-out by Manuel Neuer, who was superb in a thrilling first leg, allowed Real's Güler to fire into an empty net from 25 meters for his maiden Champions League goal.
It was a quick and sudden blow for six-time champions Bayern, who had dominated for long spells while winning 2-1 in Madrid last week.
But the home side soon leveled to lead the tie again, Real keeper Andriy Lunin this time at fault as Aleksandar Pavlovic headed in a corner while standing on the line.
Güler then bent in a free kick just before the half-hour mark, with Neuer arguably exposed again before Harry Kane scored with aplomb to put Bayern back ahead.
Kylian Mbappe netted his 15th goal of the Champions League season from Vinicius Junior's slick pass before the break to leave the game poised for extra time. Bayern appealed for a foul early in the build-up, but were waved away.
The drama slowed slightly in the second half, but a second booking for Real substitute Eduardo Camavinga late in the half boosted the hosts.
Colombia's Diaz then struck on 89 minutes and Olise in stoppage time as Bayern ended a run of four successive defeats against the 15-time record champions in knock-out ties in the elite European event.
The last Bayern home win against Real was in the 2012 semifinals when the Bavarians ultimately also progressed.
Bayern midfielder Joshua Kimmich told DAZN: "A lot of drama. We didn't start like we hoped. But we knew at halftime, the longer the game went, the better it was to our advantage. It was worth watching to the end. I hope the kids in Germany were allowed to stay up."
Tom Bischof joined fellow young star Lennart Karl in missing the game due to a calf injury as Bayern named the same team from the first leg.
Kane started having rested his ankle in the weekend's 5-0 win at St. Pauli, which took them within four points of the Bundesliga title.
Jude Bellingham was one of four changes to Real's line-up compared to the first leg and Los Blancos, a distant second in La Liga, looked a different proposition to the tentative team from the Bernabeu leg.
They were helped initially by 40-year-old Neuer, who is considering retiring at the end of the season.
A madcap first-half was a joy to watch for neutrals and Neuer denied Mbappe early in a calmer second period, which saw Jamal Musiala enter the fray on the hour. It was his back-heel that allowed Diaz the space to fire home via a slight deflection from just outside the box.
Olise, again immense, added the cherry on top of the cake and there was even time for Güler to be sent off later in injury time.
Arsenal will meet Atletico Madrid in the semifinals after a nervous 0-0 home draw with Sporting sealed a 1-0 aggregate victory.
The Gunners have seen their hopes of a quadruple fall apart in recent weeks after losing the League Cup final to Manchester City and then being dumped out of the FA Cup by second-tier Southampton.
They still top the Premier League but visit City on Sunday knowing a defeat will leave the title out of their hands.
Both sides hit the post through Geny Catamo and Leandro Trossard, but it was Kai Havertz's late goal in last week's first leg in Lisbon that made the difference.
The 2006 runners-up reached their second straight Champions League semi-final, having lost to PSG last term.
Midfielder Declan Rice told TNT Sports: "I'm delighted. I'm so, so happy. We now want to go one step forward than last season and get to the final."