The defending champions were made to work hard by Roberto di Matteo’s side but took the lead in the 36th minute when Cristiano Ronaldo nodded in Dani Carvajal’s cross.
Marcelo doubled the advantage with a brilliant strike in the 79th minute, shortly after Felix Platte struck the bar for Schalke.
The return leg at the Bernabeu takes place on March 10, with Madrid strong favourites to progress to the quarter-finals, even if they won’t hold as commanding an advantage as they did at the same stage last year.
On that occasion they ran out 6-1 winners at the Veltins Arena and a similar scoreline might have looked on the cards when the draw for the last 16 was made.
But Di Matteo has improved Schalke defensively in the past few months and, despite conceding twice, they restricted Madrid to few opportunities on goal.
The hosts were missing both goalkeepers Ralf Fahrmann and Fabian Giefer through injury, so handed a first Champions League start to 19-year-old Timon Wellenreuther.
Lucas Silva also made his first start for Madrid, but it was the hosts who looked the more threatening in the early exchanges as Dennis Aogo shot into the wall from a free-kick and also blazed over the bar from Klaas-Jan Huntelaar’s pass.
Ronaldo sliced a shot well wide at the other end before Iker Casillas was forced into the first save of the night to keep out an effort from Huntelaar.
But moments later Wellenreuther was picking the ball out of the net as Carvajal curled in a cross from the right that Ronaldo nodded in to score for the 12th successive away game in the Champions League.
It could have been even better for the visitors five minutes later as Karim Benzema beat the offside trap but saw his low shot well saved by the keeper.
Wellenreuther then pulled off a diving stop to keep out a free-kick from Ronaldo as Madrid finished the half on top.
Schalke’s efforts weren’t helped by losing top scorer Huntelaar to injury and they found it hard to fashion clear chances after the break.
Madrid looked dangerous on the break and Isco went close to doubling the lead when he shot just the bar from Gareth Bale’s lay-off.
Schalke came agonisingly close to equalising when Platte smashed a first-time effort against the bar and Atsuto Uchida was unable to finish the follow up.
The miss proved pivotal as shortly afterwards Marcelo cut in from the left and fired a superb shot into the far corner and out of Wellenreuther’s reach.
Schalke continued to press in the closing stages but were unable to boost their hopes with a late goal and must now score at least twice in the Spanish capital to progress.