Cristiano Ronaldo ended a rare drought of three games by heading Real ahead in the first half before Marcelo made victory safe with a terrific long range effort in the 79th minute. Timon Wellenreuther, a 19-year-old goalkeeper pressed into action due to injuries, impressed but ultimately Roberto Di Matteo’s side could not deny Real a tenth successive win in the competition.
Former Real striker Klaas-Jan Huntelaar had the first serious effort on goal from distance but Iker Casillas saved well to his left. All Schalke’s good early work came undone though as Real grabbed the lead through Ronaldo after 26 minutes. The Ballon d’Or winner, who had shot wastefully wide from distance moments earlier, timed his run superbly to meet Dani Carvajal’s curling cross and head past Wellenreuther.
Real almost had a second soon after as Karim Benzema broke through but Wellenreuther just got enough on his shot. Then the Schalke goalkeeper did really well to save a 30-yard free-kick from Ronaldo as Real applied the pressure.
Real threatened again when Gareth Bale neatly combined with Isco outside the area but the Spaniard shot over. Schalke served the champions a warning after 74 minutes as substitute Platte struck the crossbar with a fierce effort. Atsuto Uchida was quick to the rebound but could not trouble Casillas.
That prompted Real to step up the tempo and they took a firm grip on the tie 11 minutes from time as Ronaldo cut in from the left and beat two defenders to find Marcelo on the edge of the area.
The Brazilian gave the Germans no chance as he took a touch and clipped a superb shot over Wellenreuther. The goal deflated Schalke, who then switched to damage-limitation mode for the remainder of the match. They had not been outplayed like last season but were still left facing a huge hurdle at the Bernabeu in the second leg.