Bayern Munich are on course to reach next month's Champions League final at their Allianz Arena home after Mario Gomez hit a late winner to earn a 2-1 victory over Real Madrid in Tuesday's semi-final first leg.
After France winger Franck Ribery gave Bayern an early lead, Real's Mesut Oezil equalised before Germany striker Gomez hit the 90th-minute winner ahead of next Wednesday's return leg at Madrid's Bernabeu stadium.
The Bavarians preserved their remarkable record of having never lost at home to Madrid, with nine wins and a draw in their 10 meetings in Munich since 1976.
Bayern are now in pole position to return to Munich for this year's Champions League final on May 19, when they will face either holders Barcelona or Chelsea, who meet in the first leg of their semi-final on Wednesday.
Both teams started at full-strength, with wingers Ribery and Arjen Robben either side of Toni Kroos behind Gomez in Bayern's attack.
Real coach Jose Mourinho opted to start with France's Karim Benzema as striker in front of Oezil, who was flanked by Argentina's Angel di Maria and Portugal star Cristiano Ronaldo.
After Ribery had seen a penalty appeal turned down, the Frenchman fired past Real goalkeeper Iker Casillas from close range on 17 minute after Madrid failed to deal with a Kroos corner and the ball fell kindly to the former Marseille winger.
The goal injected some confidence into the Bayern attack as midfielders Kroos and Luiz Gustavo got the better of their Real opponents, while Bastian Schweinsteiger forced Casillas into a diving save.
Likewise, Robben started finding space down the right flank and began to give Real's Sergio Ramos a few problems.
Bayern picked up two first-half bookings, with both defender Holger Badstuber and Robben earning cautions, but neither will miss the second leg.
With 39 minutes on the clock, Gomez nearly made it 2-0 when Casillas had to stretch to save his shot with half-time beckoning.
But the visitors got back on level terms just seven minutes into the second half.
Bayern goalkeeper Manuel Neuer managed to save Ronaldo's shot, but when Benzema fired the ball back across goal, the Portugal star teed up Oezil for a simple tap-in as Neuer watched on helplessly.
Having squandered several chances and had a penalty appeal turned down, Gomez finally found the net in the 90th minute after Bayern captain Philipp Lahm squared for the German star to bundle the ball home from close range.
There was a melee in the dying stages after substitute Thomas Mueller was heavily fouled by Madrid replacement Marcelo, who was shown a yellow card, but Bayern now have everything to play for in the return leg in Spain.