Gareth Bale marked his return from a hamstring injury by scoring in his first appearance in 50 days, while Pepe and Jese also got on the scoresheet for the Merengues.
Iago Aspas got Celta's only goal in their worst defeat of the season, but the afternoon really belonged to Ronaldo, who moved on to 26 La Liga goals for the season, one ahead of Barcelona forward Luis Suarez.
Madrid went ahead before the break when Pepe rose highest to meet Isco's corner and Ronaldo doubled their advantage early in the second half.
The Portuguese received a short pass from Sergio Ramos with plenty of space, but well outside the area, and wrapped his right foot around the ball to send it spinning high into the net.
His next goal was of similar quality, curling the ball over the wall and into the top corner of the near post to score from a direct free-kick for the first time this season.
Celta pulled a goal back out of nowhere through Aspas, but the Galians were back in the game for barely a minute. Lucas Vazquez released Isco on the left and the midfielder rolled the ball across the box for Ronaldo to tap home from close range and complete his treble.
The Portuguese headed home Jese's corner to grab his fourth and the provider then turned scorer moments later.
There was still time for another substitute to get in on the act, Bale marking his return to action by driving the ball low across goal and in off the far post.
UEFA Champions League hopefuls Villarreal were less clinical in front of goal as Las Palmas took another step towards survival by unexpectedly winning 1-0 at Estadio El Madrigal.
Las Palmas captain David Garcia gave the visitors a deserved lead on the half-hour mark, becoming the first player to score against Villarreal goalkeeper Alphonse Areola in the Primera Division for 620 minutes.
Quique Setien's side produced an equally solid display after the break to secure their third consecutive win and move on to 30 points to strengthen their bid to stay up.
Villarreal, meanwhile, slip seven points behind third-placed Real Madrid but are still in pole position to claim fourth spot.
Fifth-placed Sevilla are now eight points behind the Yellow Submarine after allowing relegation battlers Getafe to earn a late 1-1 draw at Coliseum Alfonso Perez.
A free-kick from Ever Banega with 11 minutes to go looked to have been enough to give the Andalucians a first away league win of the season.
However, defender Emiliano Velazquez - who had given away the foul for Sevilla's goal - scored from close range after a corner with five minutes left to earn a point and end a run of seven straight league defeats.
Elsewhere, Deportivo La Coruna and Malaga played out a thrilling 3-3 draw at Estadio Riazor.
Charles Dias de Oliveira headed Malaga in front but Deportivo levelled two minutes before half-time when midfielder Celso Borges knocked in a cut-back through the penalty area from Juanfran.
Malaga were back in front in the 63rd minute when Ignacio Camacho headed home a corner yet that lead did not last long as Deportivo equalised again in the 69th minute through a fine individual goal by Fede Cartabia.
Deportivo thought they had secured a long-overdue victory with nine minutes left when Lucas swept in a cross from Faycal Fajr.
However, with a minute left, the unfortunate Alejandro Arribas nodded a deep free-kick from Recio into his own net before Camacho collected a second caution during stoppage-time.