Real were virtually assured of a place in the last eight after thrashing the Bundesliga side 6-1 in Gelsenkirchen in the first leg and coach Carlo Ancelotti rested a host of regulars for the return at the Bernabeu with an eye on Sunday's La Liga "Clasico" against Barcelona.
Gareth Bale set up Ronaldo for Real's 21st-minute opener and Schalke levelled 10 minutes later when a long-range Tim Hoogland effort deflected off Sergio Ramos and bounced past the stranded Iker Casillas.
Ronaldo took his tally in this edition of Europe's elite club competition to 13 goals with his second of the night in the 74th minute. Alvaro Morata added a third for Real a minute later after a Ronaldo effort came back off the crossbar.
It was Real's biggest aggregate Champions League win after beating APOEL Nicosia 8-2 in 2011-12.
Ronaldo's double meant he surpassed his previous best Champions League haul of 12 from last season and he has 41 in all competitions for Real, the La Liga leaders, this term.
The world's richest club are bidding to reach the semi-finals for a third consecutive season and chase the 10th European crown that has eluded them since they last won the Champions League in 2002.
They are unbeaten in 31 matches in all competitions since a La Liga defeat to Barcelona at the end of October and also meet their arch-rivals in next month's King's Cup final.
Schalke, who are third in the Bundesliga, return to Germany to focus on securing a place in the Champions League next season.
Real can go seven points clear of third-placed Barca with a win on Sunday and Ancelotti used only four of the players who started the first leg at Schalke in Tuesday's starting lineup.
Jese started up front alongside Ronaldo and his Spain Under-21 team mate Alvaro Morata, but Jese was taken off on a stretcher with what appeared to be a serious knee injury and replaced by Bale in the eighth minute.
After a goal apiece for each side, Schalke had some good moments late in the second half, delighting their 4,000-strong travelling support who easily drowned out the home fans inside the giant arena.
Former Real forward Klaas-Jan Huntelaar was played through in the 40th minute by teenage midfielder Max Meyer and his low shot scooted narrowly wide.
Portugal's Ronaldo came close to a third in the 83rd minute with a low drive that struck the post, after earlier hitting the bar. He has struck 32 times in his last 25 Champions League matches and has 63 goals in 99 appearances.