Real Madrid survived a scare to beat Rayo Vallecano, while there were victories for Real Sociedad and Almeria in the Primera Liga on Saturday.
Cristiano Ronaldo followed up his midweek hat-trick with a brace and Gareth Bale produced another eye-catching performance as Real Madrid defeated Rayo Vallecano 3-2 to remain within six points of leaders Barcelona.
Ronaldo opened the scoring after just three minutes following a devastating counter-attack and Bale then helped Madrid double their lead when, with his less-favoured right foot, he floated over a pinpoint cross for the unmarked Karim Benzema to power home a header from six yards out.
Bale, who like Benzema scored two against Sevilla, also set up Ronaldo for Madrid's third just after half-time. The Welshman dinked the ball over a defender's head near the right touchline before racing into the box and laying the ball back for Ronaldo to slam into the roof of the net.
However, Carlo Ancelotti's men were then stunned as Rayo won, and converted, two penalties in three minutes from Jonathan Viera to set up a thrilling final half-hour in which the home side hit the woodwork and came close on a number of other occasions.
They could not find an equaliser though and remain rooted to the foot of the table while Madrid stay within sight of Barca, who beat Espanyol on Friday in their own derby.
Real Sociedad warmed up nicely for their Champions League clash against Manchester United with a 5-0 drubbing of Osasuna at home.
Jon Ansotegui headed the hosts in front after 33 minutes, before Inigo Martinez doubled the lead with a header two minutes into the second half.
Jordan Loties was sent off shortly after the second goal, and Sociedad increased the damage thanks to goals from Antoine Griezmann, Chory Castro and Haris Seferovic.
Almeria striker Rodri scored a highly-contested goal with his hand to give his side all three points in a 1-0 win against Real Valladolid.
The Barcelona B loanee decided the game by netting the only goal shortly before half-time, but Valladolid were incensed it was allowed to stand.
Sevilla slumped to a 1-0 defeat at home to Celta Vigo in the day's late game after a mistake by goalkeeper Beto.
Beto's poor pass was intercepted by Alex Lopez in the 47th minute and he took full advantage of the opportunity to seal victory for Celta.