Cristiano Ronaldo scored twice to earn 10-man Real Madrid a 4-3 win over Real Sociedad after goalkeeper Antonio Adan was sent off in the sixth minute, but they remained 16 points adrift of Barcelona in Spain’s Primera Division on Sunday.
The unbeaten leaders crushed city rivals Espanyol 4-0 at the Nou Camp, two goals from Pedro and one apiece by Lionel Messi and Xavi securing their 17th victory in 18 games this season.
For the second game in a row Jose Mourinho courted controversy by dropping captain and goalkeeper Iker Casillas to the bench, but the Spain international was soon in action at the Bernabeu after Adan was shown a straight red card.
Casillas was unable to save Xabi Prieto's ensuing spot-kick which cancelled out Karim Benzema's second-minute strike.
Although Prieto grabbed two more for the Basque side, Sami Khedira and Real's leading scorer Ronaldo secured the points to end a run of three games without a win for Mourinho's misfiring side.
The champions moved on to 36 points from 18 games.
Friday 4 January
Zaragoza 1-2 Betis
Saturday 5 January
Levante 3-1 Athletic Bilbao
Granada 1-2 Valencia
Deportivo 1-0 Malaga
Sevilla 1-0 Osasuna
Sunday 6 January
Celta Vigo 3-1 Valladolid
Real Madrid4-3 R Sociedad
Barcelona 4-0 Espanyol
The Bernabeu was buzzing with the news that Adan was in the starting line up at the expense of fan favourite Casillas, behind a patched-up defence shorn of the suspended Sergio Ramos and the injured Pepe, Marcelo and Fabio Coentrao.
Real, with Ronaldo wearing the captain's armband, quickly took the lead when Khedira fed Benzema in the area and the France striker turned to score.
The game had barely settled down when Adan misplaced a pass, raced out to correct his error and brought down Carlos Vela for a penalty.
Adan was sent off and Casillas was brought on to chants of "Iker, Iker" from the home fans.
Spain's number one was sent the wrong way from the spot by Xabi Prieto, however, and in a nervous few minutes he almost gave away a second with a poor pass out.
Khedira put Real ahead in the 35th minute, cleverly backheeling Ricardo Carvalho's low shot past Claudio Bravo in a crowded area, but Sociedad levelled again before the break.
Prieto pounced on a deflected pass in the 40th minute and slotted the ball past Casillas, and Khedira volleyed wide of an open goal after Benzema's shot came back off the post.
Sociedad's lack of ambition let Real back into the game after the break, Benzema winning a ball in midfield and playing Ronaldo through to score their third in the 68th minute.
The Portugal international thumped a free kick in off the underside of the bar two minutes later, his 16th goal of the campaign.
Although Prieto pulled one back for the visitors with 14 minutes remaining, their challenge faltered when defender Daniel Estrada was also sent off near the end.
Barca welcomed coach Tito Vilanova back to the dugout after a throat operation just over two weeks ago, and he watched his side destroy Espanyol in the opening half hour at the Nou Camp.
Andres Iniesta crossed low for Xavi to sidefoot home the opener after 10 minutes and Pedro netted his first from a Cesc Fabregas pull back in the 15th.
Pedro scampered away on to a Sergio Busquets through ball in the 27th and dinked his shot over Francisco Casilla for the third and Fabregas went down for a penalty two minutes later.
World Player of the Year Lionel Messi, who netted 91 goals for club and country in 2012, scored from the spot to rack up his 27th in the league this season.
The Argentine forward was later denied by the woodwork from a free kick.