However, victory came at a cost for Los Blancos as promising forward Jese Rodriguez suffered a suspected cruciate ligament injury early on in the game.
Ronaldo put Real ahead on the night when he swept home Gareth Bale's low cross on 21 minutes, but Tim Hoogland's deflected effort brought the visitors level before half-time.
It took until 16 minutes from time for Ronaldo to put Madrid back in front as he collected a loose ball from Bale and stormed forward to drill low into the net for his 13th Champions League goal of the season.
And Bale was the creator once more for his side's third moments later when he squared for Alvaro Morata to fire home after Ronaldo had struck the bar.
Madrid boss Carlo Ancelotti had named a weakened side with one eye on Sunday's crucial La Liga clash against Barcelona.
However, the Italian was forced to introduce Bale inside the first 10 minutes when Jese had to be stretchered off after appearing to suffer a serious knee injury as he challenged for the ball with Sead Kolasinac on the right.
Bale replaced the Spanish under-21 international and injected plenty of pace into Madrid's play for the rest of the half.
The Welshman teed up Ronaldo for the opener as he received Morata's pass and squared for the Portuguese to tap into an empty net.
Morata should have doubled his side's advantage six minutes later after a wonderful run and cross by Bale, but he skewed horribly wide with just Ralf Fahrmann to beat.
Against the run of play, Schalke were back on level terms just after the half hour mark when Hoogland wandered forward from right-back and saw his shot deflect off Sergio Ramos and past the flat-footed Iker Casillas.
Fahrmann then made a hat-trick of saves to keep his side from going in behind at the break as he denied Isco, Morata and Nacho.
And the Bundesliga side could even have been in front at the break as former Real striker Klaas-Jan Huntelaar slotted the ball inches past the far
post from Max Meyer's through ball.
Fahrmann was a busy man in the second period too as he made a fantastic save to turn a Ronaldo header over before denying Isco from close range.
Ronaldo did finally put the hosts back in front as he drove at the Schalke defence before firing low past the helpless Fahrmann.
And Morata got the confidence boast he needed two minutes later when Bale unselfishly squared after Ronaldo had struck the bar.
Ronaldo came within inches of his hat-trick and equalling Lionel Messi's record of 14 Champions League goals in a season again seven minutes from time, but he had to settle for just a double on the night as his low left-footed effort came back off the post and rebounded to safety.