Madrid had only won one of their last five home games in all competitions but Sociedad made for ideal opponents on Saturday, losing at the Santiago Bernabeu for the ninth time in a row.
Lucas Vazquez has made more Madrid appearances than any other player under Zinedine Zidane and he scored the opener in the first minute, heading in Ronaldo's cross.
Ronaldo extended Madrid's lead with a first-time finish from Marcelo's low centre after he was unwisely left unmarked in the middle of the visitors' box and he headed home his second before half-time after Toni Kroos had picked out the top-right corner with a sublime strike.
And the Portugal star wrapped up his first Madrid hat-trick of the season with 10 minutes to go, capitalising on Geronimo Rulli's mistake to slot home.
Zidane rested Casemiro and Gareth Bale with an eye on a blockbuster clash with PSG and took Luka Modric off for the last half-hour, Madrid rarely needing to exert themselves against a poor Sociedad outfit, although the visitors scored consolations through Jon Bautista and Asier Illarramendi, either side of Ronaldo's third.
Madrid took the lead after 49 seconds, their fastest goal of the season, with Vazquez directing a terrific header home to find the net for the first time in five months in LaLiga.
Ronaldo took advantage of a fortunate deflection to bamboozle Aritz Elustondo on the left wing, the Portugal star standing up a fine cross which Vazquez flicked beyond Rulli.
1 - Lucas Vazquez’s goal after 49 seconds tonight is the fastest that Real Madrid have scored this season in all competitions. Lightning. pic.twitter.com/Bc154OOhPF— OptaJose (@OptaJose) February 10, 2018
Madrid came close to scoring a second in the seventh minute, Rulli getting enough on Karim Benzema's poked finish to turn the ball on to the post after Marcelo burst into the box.
Marcelo was involved again as Madrid extended their lead in the 27th minute, raiding down the left from Marco Asensio's pass and providing a low cross for Ronaldo to slam home.
Ronaldo, unmarked again, volleyed against the post but two more goals came before the break.
Vazquez teed up Kroos for a sweet 20-yard strike into the top-right corner and Modric then delivered a perfect right-wing corner for Ronaldo to nod in the fourth.
@Cristiano has scored more #LaLiga goals v Real Sociedad at the Bernabeu than against any other team!— LaLiga (@LaLigaEN) February 10, 2018
2017/18 #RealMadridRealSociedad pic.twitter.com/phcYcW88V2
La Real thumped Deportivo La Coruna 5-0 in their last match but took 51 minutes to record their first shot, a Juanmi header clipping the outside of the post.
Madrid understandably eased off ahead of a season-defining meeting with PSG, Zidane replacing Vazquez and Modric with Mateo Kovacic and Isco, and former Los Blancos player Illarramendi sent a free-kick narrowly over the crossbar.
Sociedad got themselves on the scoresheet in the 74th minute, Mikel Oyarzabal setting up Bautista to slot past Keylor Navas, and Illarramendi took advantage of sloppy defending to add their second.
But Madrid could hardly have had an easier workout ahead of facing Neymar, Kylian Mbappe and the rest, with Rulli spilling a shot from substitute Bale at the feet of Ronaldo, who gratefully tucked away the loose ball for his first club hat-trick of the campaign.
Key Opta stats:
- Cristiano Ronaldo is the first player to score a perfect hat-trick in La Liga this season (right foot, left foot and head).
- Ronaldo has scored in each of his seven league games against Real Sociedad at Santiago Bernabeu (15 goals in total).
- Ronaldo has scored 15 La Liga home goals against Real Sociedad, more than versus any other opponent for Real Madrid.
- Lucas Vazquez has scored six goals this season in all competitions, his best goal tally in single campaign for Real Madrid.