The Frenchman turned home Fabio Coentrao's cross in the first half to seal a win against Pep Guardiola's side, which dominated possession but failed to find a breakthroughA solitary strike from Karim Benzema was enough to give Real Madrid a 1-0 win over Bayern Munich in the first leg of the Champions League semifinal.
The France international poked home Fabio Coentrao's cross in the first half for the only goal of the game to inflict only a second defeat in the competition for Pep Guardiola's side, and his first as a coach at Santiago Bernabeu.
Bayern bossed possession but failed to create many meaningful chances, and Madrid could have won more comfortably had Cristiano Ronaldo and Angel Di Maria kept their composure with clear openings in the first 45 minutes.
Despite a fast-paced opening, chances were scarce early on, with neither Ronaldo - who was risked despite his recent hamstring injury - nor his teammates able to threaten Manuel Neuer.
Bayern also struggled to forge openings, until Arjen Robben flashed an effort wide of Iker Casillas' right-hand post after 13 minutes.
Toni Kroos' shot was then blocked by Pepe before Real broke at pace, allowing Ronaldo to find Fabio Coentrao down the left with a brilliant pass.
And when his cross evaded Dante, Jerome Boateng and Neuer, Benzema was left with the simplest of tasks to finish and put the hosts ahead.
Ronaldo had a glorious opportunity to double the advantage soon afterwards, blazing Benzema's pass over the crossbar, as Bayern struggled to regain its early rhythm.
David Alaba and Ribery went close to threatening a response but they were quickly dealt with, before Di Maria fired over from a tight angle as the game opened up again in the latter stages of the first half.
Ronaldo twice tested Neuer to no avail following the interval and, even after the withdrawal of Pepe due to injury for the hosts, Bayern looked surprisingly toothless for a side that wrapped up the Bundesliga title in record time this season.
Bayern's invincible form has been deserted of late, and even when the club pushed for a late equalizer there was no way through.
In a nervy finish, Mario Gotze was denied by a smart Casillas stop before Bayern's appeals for a penalty following a challenge by Xabi Alonso on Thomas Muller were waved away by referee Howard Webb.
On his return to Spain, that left former Barcelona boss Pep Guardiola and his men with nothing to show for their efforts, and facing an uphill task if they are to become the first side to successfully defend the Champions League trophy.