Cristiano Ronaldo took his La Liga tally to 37 goals as Real Madrid maintained their six-point lead over Barcelona on Saturday with a 5-1 rout of Osasuna.
But Barca kept up the pressure with a 2-0 victory over Athletic Bilbao in a game which saw Lionel Messi take his league goal total to 36.
Karim Benzema sent Real on their way with a delightful volley in the opening minutes.
Ronaldo and Gonzalo Higuain both then found the target with the Argentine notching up his 100th career goal for the club.While Osasuna threatened a brief comeback after the break through a Juan Francisco 'Nino' header, Ronaldo struck again after 69 minutes and Higuain wrapped up the scoring.
A minute from the end, Osasuna substitute Roland Lamah was dismissed for a second yellow card as his team's six-match unbeaten run came to an end on the day that coach Jose Luis Mendilibar had extended his contract for another year.
"We scored from the first chance that we had with a goal which was out of this world and the second was also fantastic," said Real coach Jose Mourinho.
"We adapted well against a tough side like Osasuna and we continued to play our attacking play which involved looking for our strikers. Even when we conceded the goal we knew how to respond and did not panic at 3-1. It was a good performance by us."
At Camp Nou, Barca went ahead five minutes before the break through Andres Iniesta and then, following the restart, Messi scored his 36th league goal of the season after Cristian Tello was felled in the box.The Argentine now has 56 goals in all tournaments this season, nine more than his great rival at Real.
Athletic had less than 48 hours to prepare for the match following their 4-2 victory over Schalke in the Europa League and they made several changes to the side leaving out valuable players like Fernando Llorente and Iker Muniain.
Barca coach Pep Guardiola said he would not keep players in reserve with the second leg of their Champions League tie coming up against AC Milan following the 0-0 at the San Siro last Wednesday.