Real Madrid extended their La Liga lead to four points as Cristiano Ronaldo’s 39th career hat-trick dismantled city rivals Atletico Madrid.
Ronaldo has often been criticised for his performances this season but he moved his goal tally into double figures as Real made it 29 games unbeaten with an emphatic 3-0 win at the Estadio Vicente Calderon.
Atletico are the last team to beat Real in the league – 1-0 at the Bernabeu in February – but they were outplayed for large periods as Zinedine Zidane’s side took advantage of Barcelona’s goalless home draw against Malaga earlier in the day.
Ronaldo got the ball rolling when his 23rd-minute free-kick beat Atletico goalkeeper Jan Oblak with the help of a deflection.
The goal may yet be credited to Raphael Varane, although it will remain with Ronaldo if it was deemed to have struck Atletico defender Stefan Savic, but there was no stopping Real’s talisman.
Ronaldo both won and converted a 71st-minute penalty, and he then eclipsed Alfredo Di Stefano’s 17-goal Madrid derby mark when he swept home Gareth Bale’s superb cross.
Diego Simeone’s Atletico, who only briefly threatened at the start of each half, are now nine points adrift of Real having lost three of their last four league games.
Barcelona had failed to take advantage of their earlier kick-off against Malaga to go top of the table for a few hours at least.
Lionel Messi was absent at the Nou Camp after he contracted a vomiting bug and Barcelona lacked their usual cutting edge without the Argentina superstar.
Luis Suarez was also suspended as Barcelona drew a blank in front of goal for the first time this season.
The champions came closest to breaking the deadlock when Paco Alcacer and Gerard Pique saw their efforts disallowed for offside.
Pique also saw a strong penalty appeal waved away after he was hauled down in the box and Malaga goalkeeper Carlos Kameni was in fine form.
Kameni made an excellent stop from Neymar deep into injury time as Malaga ended the contest with nine men.
Diego Llorente was dismissed 20 minutes from time for felling Neymar in full flight and Juankar was sent off in the final seconds as Malaga protested for the final whistle to be blown.
Sevilla came from two goals down to beat Deportivo La Coruna 3-2 in controversial fashion at the Estadio Riazor.
A Ryan Babel goal inside the opening minute and Florin Andone’s 42nd minute strike put struggling Deportivo in sight of a first win since the start of October.
But Steven Nzonzi halved the deficit just before half-time and Spain winger Vitolo levelled three minutes from time.
Gabriel Mercado could arguably have been red-carded for shoving Andone to the ground with a quarter of an hour to go, with Deportivo denied what looked a clear-cut penalty.
And it was Mercado who popped up with the winner in injury time after Przemyslaw Tyton failed to hold on to Nico Pareja’s shot.
Eibar moved above Celta Vigo and into seventh spot with a 1-0 victory over their Galician visitors.
Fran Rico’s ninth-minute strike – his second of the season – was enough to give Eibar the three points.
Disappointing Celta created little and ended the game with nine men after Sergio Alvarez and Hugo Mallo were sent off in stoppage time.