The away side started the match brightly, but Ronaldo gave Real an early lead as he fired home following Karim Benzema's pin-point left-wing delivery, before the Portuguese returned the favour for his French team-mate for the second soon after.

Real coach Carlo Ancelotti said before the match that he would not rotate Ronaldo - who has now scored nine goals in his past four games - while he is in such a rich vein of form, and the former Manchester United man repaid that faith by slotting in a penalty for his 161st La Liga goal and Real's third of the game on 26 minutes.

World-record signing Gareth Bale set up Sami Khedira for the fourth goal before the break, and although Antoine Griezmann scored in a fifth successive match for Sociedad after the break, Ronaldo ensured he would leave with the match ball by burying a 76th-minute free-kick.

In other matches, Getafe and Elche played out a 1-1 draw and Rayo Vallecano moved out of the relegation zone with a 2-0 victory at Celta de Vigo.