Image Credit: Leonardo AI
Real Madrid led twice, Arda Guler scored twice, and Kylian Mbappe looked like a man possessed. But Bayern had the last word - and the last goal - in a semi-final second leg for the ages.
Two minutes. That is all it took for Real Madrid to silence what was supposed to be a controlled, professional second leg. Arda Guler, 20 years old and ice-cold under the Munich lights, drove a low finish past Manuel Neuer before Bayern had even settled into the game. The Allianz Arena went quiet. Real Madrid had their plan, and it was working.
What followed across the next 96 minutes was one of the wildest Champions League semi-finals in years. Seven goals. Two red cards after the final whistle. A second yellow for Eduardo Camavinga flipped the game's entire momentum. And a Michael Olise winner in the sixth minute of stoppage time that sent 75,000 people into absolute delirium.
Bayern Munich advance 6-4 on aggregate. They are in the Champions League final. Real Madrid, the record 15-time champions, are going home.
How Bayern Came Back From the Edge - Twice
After Guler's early opener, Bayern found their equalizer almost immediately. Aleksandar Pavlovic, the Bayern midfielder who has grown into one of Europe's most composed box-to-box players this season, rose highest from a Joshua Kimmich delivery in the 7th minute and headed Bayern level. The stadium exhaled.
But the game turned again in the 30th minute. Guler, who had already announced himself with the opener, picked up the ball inside the Bayern half and drove forward with total conviction. His second goal of the night made it 1-2 to Real Madrid - and suddenly the aggregate score was level at 3-3.
Harry Kane steadied things nine minutes later. Upamecano, not the most celebrated name in attack, picked out Kane with a threaded pass, and the England captain did what he does best: finished with complete certainty. 2-2 at the 39th minute. Everything is still to play for.
Then Kylian Mbappe reminded everyone exactly why Real Madrid brought him to the Bernabeu. Two minutes before halftime, Vinicius Junior picked him out on the edge of the box, and Mbappe's left foot did the rest. 2-3. Real Madrid is back in front at the break.
The Camavinga Card That Changed Everything
The second half was more controlled until Eduardo Camavinga collected his first yellow card in the 79th minute. A reckless challenge that the referee had little choice but to punish. Eight minutes later, in the 87th minute, he did it again. Second yellow. Red card. Real Madrid is down to ten men with the game still alive.
That decision proved fatal. In the 90th minute, Luis Diaz, the Colombian who has been one of Bayern's standout performers in this European run, leveled at 3-3 through a Jamal Musiala assist. All square on the night. All square on aggregate. The Allianz Arena was shaking.
Key Moment of the Match
Camavinga's second yellow card in the 87th minute was the pivot point of this tie. Real Madrid, already chasing the game, lost their most dynamic midfielder at the worst possible moment. Bayern scored twice in the final seven minutes. With eleven men on the pitch, the outcome might have been very different.
Then came the 90+6 moment. Michael Olise, a constant threat from wide positions all night, found space inside the Real Madrid box and finished low past the goalkeeper. Harry Kane had the assist. Bayern Munich 4, Real Madrid 3. That was the final whistle.
Arda Guler: The Man Who Scored Twice and Still Ended Up With a Red Card
Nobody had a stranger night than Arda Guler. The Turkish midfielder was sensational for 90 minutes - two goals, electric in tight spaces, and clearly one of the most exciting 20-year-olds on the planet right now. He should have walked off to a standing ovation.
Instead, after the final whistle, Guler was shown a red card for arguing with referee Slavko Vincic. A moment of frustration that cost him. He will miss whatever Real Madrid play next in European competition, though, given the result tonight, that may not be this season.
Guler was also substituted in the 90th minute, just as things were reaching boiling point. Alvaro Arbeloa brought on Franco Mastantuono to replace him - a 16-year-old Argentine making his Champions League semi-final debut in Munich. That detail alone tells you where Real Madrid's future is pointing.
Full Goal-by-Goal Timeline
What This Means For Bayern and What Comes Next
Bayern Munich are through to the Champions League final, where they will face Paris Saint-Germain, who eliminated Liverpool 4-0 on aggregate. It is a final that carries enormous weight - two of European football's most ambitious clubs, both desperate to validate their dominance with the biggest club prize in the sport.
For Real Madrid, this is the end of a road they expected to travel much further. They arrived in Munich having lost the first leg 1-2 at the Bernabeu. They were 4-4 on aggregate at halftime tonight. And yet ten-man Real Madrid could not hold on. Camavinga's dismissal will be replayed endlessly on Spanish television for weeks.
The Arbeloa project is young. Mastantuono coming on as a substitute in a Champions League semi-final at age 16 is not a consolation - it is a signal. Real Madrid is building toward something. But right now, Bayern Munich is the team booking travel to the final.
Players to Watch Going Forward
Michael Olise - The Man With the Last Word
Olise's injury-time winner is the goal that will define his Bayern Munich career so far. The 24-year-old French winger joined from Crystal Palace in 2024 and has spent two seasons proving he belongs at the elite level. Tonight, he delivered when it mattered most. If Bayern wins the final, Olise's name will be in every opening line.
Arda Guler - A Night of Brilliance and Regret
Two goals. One red card. Guler's Champions League semi-final was a snapshot of a 20-year-old talent that is not yet fully in control of its own fire. The football was extraordinary. The post-match argument with the referee was unnecessary. He will learn. He is going to be a generational player. But tonight had a bitter ending he did not need.