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 scoring 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.
Even so Xavi Hernandez and Carles Puyol found themselves on the bench.
Defender Jon Aurtenetxe headed a Gerard Pique effort off the line but a goal for Barcelona was on the cards and it arrived through Iniesta after 40 minutes.
Known for crucial goals rather than a regular scorer he smashed the ball into the roof of the net after being supplied by Messi.
Tello was causing problems for the Athletic defence and he was felled by Javi Martinez in the penalty area after 57 minutes with Messi firing in Barcelona's second from the spot.
Muniain, who came on at half time, went closest to pulling a goal back, when he rounded keeper Victor Valdes but Pique cleared on the line.
Malaga's Champions League hopes suffered a blow as they lost 2-0 at home to Real Betis.
Zaragoza moved off the bottom of the table with a 2-1 victory over Sporting Gijon who are now in last place on goal difference with Racing Santander who were beaten 1-0 by Granada.