Rayo Vallecano climbed out of the relegation zone after beating fellow strugglers Celta Vigo as Getafe drew at home with Elche.
Cristiano Ronaldo followed up last week's hat-trick against Sevilla with another treble as Real Madrid beat Real Sociedad 5-1 at the Santiago Bernabeu.
Ronaldo was unlucky not to open the scoring in the seventh minute when his 25-yard strike hit the bar, but he did not have to wait much longer to celebrate his first goal on 12 minutes as he pulled down Karim Benzema's deep cross before drilling a shot passed Claudio Bravo from a tight angle.
The Portuguese then returned the favour six minutes later with a pull-back to Benzema that the France international side-footed past Bravo to make it 2-0.
It was 3-0 nine minutes later when Ronaldo won a penalty, which he converted, when his low shot went through Markel Bergara's legs and hit the defender's trailing arm.
The game was as good as over for Sociedad at that point, but the agony was not and Gareth Bale set up Sami Khedira to rifle home Real's fourth of the first half from the edge of the box.
Sociedad pulled a goal back when Antoine Griezmann neatly lobbed home a through-ball from Carlos Vela on 61 minutes before Ronaldo completed the scoring with a 25-yard free-kick in the 76th minute.
Goals from two half-time substitutes saw Athletic Bilbao battle back for a well-deserved 2-1 home win over Levante.
The visitors took the lead shortly after the half-hour when Jordi Xumetra did brilliantly to break free down the right and pull the ball back for David Barral, whose initial shot was saved but made sure with the follow-up.
Athletic levelled on 76 minutes when Gaizka Toquero surged down the right and sent over a cross that Keylor Navas punched only as far as Rico, who lashed a fine volley into the right corner.
And, with 84 minutes on the clock, the comeback was complete as Ander Iturraspe lofted the ball into the Levante area and Aritz Aduriz guided the ball beyond Navas.
Aduriz's night was doomed to end on a sour note, however, when he was harshly ruled to have been the primary offender in a needless spat with Aloys Nong and was sent off.
Getafe were held to a 1-1 draw at home to Elche as they failed to hold on to a first-half lead despite the best efforts of goalkeeper Miguel Moya.
Luis Garcia's men took the lead on 18 minutes when Diego Castro crossed in a fine ball from the right which found Pedro Leon, who fired home with his left foot from just outside the penalty area.
Elche equalised on 61 minutes when Aaron Niguez's cross from the left picked out Richmond Boakye in the penalty box and the Ghana international made no mistake as he headed home from close range.
Vallecano hauled themselves out of the bottom three and level on points with their opponents after a 2-0 victory at Celta Vigo.
Jonathan Viera had given Vallecano a 24th minute lead before substitute Joaquin Larrivey made certain of the points on 72 minutes.