Gareth Bale scored twice as Real Madrid recovered from two consecutive league defeats to beat Rayo Vallecano 5-0 on Saturday. Atletico Madrid remain top of La Liga as they came from behind away to beat Athletic Bilbao 2-1, while Barcelona rounded off a fine week by overcoming stiff resistance from local rivals Espanyol to win 1-0 thanks to a late Lionel Messi penalty.
Victory for all three title contenders means that Atletico maintain their one point lead over Barcelona with Real a further two points adrift in third.
Bale also teed up Cristiano Ronaldo to open the scoring at the Bernabeu as the Portuguese continued his run of scoring in each of his last 10 games for club and country by bursting past two Rayo defenders before slotting low into the corner.
Karim Benzema then failed to connect with an open goal to aim at and Bale also passed up a huge chance as he kicked the ground when attempting to chip Ruben Martinez.
Dani Carvajal eventually made the game safe when he registered his first goal for the club from Ronaldo's cut-back 10 minutes after half-time.
Bale then took over as he tapped home Angel di Maria's unselfish cross before running half the length of the field to slot home his 16th goal of the season to make it 4-0. And Alvaro Morata rounded off the rout with a fine curling effort 12 minutes from time.
"We reacted well after two defeats," said Real boss Carlo Ancelotti.
"We played well and our attitude was good, which will serve us well for the next game.
"Obviously, we could have been in a better position at this point in the season, but mentally I think we reacted well today and can look forward with optimism."
It was a far tougher day for Atletico and Barca as they had to grind out difficult wins away from home. Atletico got off to the worst possible start as Aritz Aduriz cushioned a long ball into Iker Muniain's path and he sent a perfectly weighted lob over Thibaut Courtois and just under the crossbar.
Diego Costa had a chance to reply soon after as he was played in by Koke, but his shot was too close to Gorka Iraizoz and the keeper parried the ball to safety.
Costa hits 33rd goal
The Spanish international made amends with a similar chance nine minutes later when he was again sent through on goal by Koke and this time finished low into the far corner for his 33rd goal of the season.
Costa was left cursing his luck twice in quick succession at the start of the second period as he raced onto another long ball and shot inches wide before being clearly tripped by Aymeric Laporte inside the area, but the referee waved away his penalty claims.
Atletico did get the game's all-important third goal, though, as Costa fed Filipe Luis on the left and his cross was headed home at close range by Koke. Courtois was forced into one brilliant save from a towering header by Aduriz as Athletic pressed for an equaliser.
But they couldn't find a way through and the hosts finished the game with 10 men as Laporte saw a second yellow card for chopping down Costa five minutes from time.
Barcelona were also made to work for the three points as Messi scored the only goal from the spot 14 minutes from time after Javi Lopez was adjudged to have handled inside the area.
Espanyol were then reduced to 10 men when goalkeeper Kiko Casilla saw a straight red card for blocking Messi's goalbound effort with his hands outside the area.
"Derbies are always the same and you have to win them," said a relieved Barca boss Gerardo Martino.
"It doesn't come easy and they are always tight games, for that reason this was a risky away game for us and we value the three points even more."
Barca now firmly have the destiny of the title in their own hands as they host Atletico on the final day of the season. However, the Argentine is taking nothing for granted after suffering a shock defeat to relegation threatened Valladolid earlier this month.
"What is left continues to be very difficult and very important. We still have seven finals left between now and the end of the league season and in those games we will also have with us the memory of our defeat in Valladolid."