Two goals in the last three minutes of the first half saw FC Barcelona win 2-0 at home over Cadiz on Sunday, which keeps them eight points clear at the top of La Liga after 22 rounds.
Sergi Roberto and Robert Lewandowski scored the goals, which gave Barca, with several changes in their starting 11, three vital points.
Barca were struggling to break down a tough Cadiz defense until the 43rd minute when Ferran Torres crossed for Lewandowski to head toward the goal. The striker's header was blocked, but Roberto was on hand to score from close range.
Lewandowski doubled Barca's lead two minutes later when he worked space to fire home a powerful left shot on the verge of halftime.
Real Madrid won 2-0 away to Osasuna thanks to late goals from Fede Valverde and Marco Asensio on Saturday night.
Valverde arrived from deep to open the scoring in the 78th minute after being set up by Vinicius Jr. Vinicius had a goal ruled out in the 90th minute for offside, but Asensio doubled Madrid's lead moments afterward after good work from youngster Alvaro Rodriguez.
Real Sociedad dropped two points in a 1-1 draw at home with Celta Vigo.
Mikel Oyarzabal put Real Sociedad ahead in the fourth minute and their task got much easier in the 74th minute when Celta midfielder Renato Tapia was sent off.
Robin de Normand put the ball into his own net deep into injury time, as he tried to clear a shot from Iago Aspas.
Atletico Madrid remain fourth after Antoine Griezmann scored the only goal of the game in the 72nd minute to give his side a 1-0 win at home to Athletic Club Bilbao.
Griezmann has now scored 14 goals in 30 games against Athletic, who were the better side in the first half, while Atletico were much improved after the break.
Betis won a tight game 2-1 at home to an improving Valladolid thanks to a second minute goal from Juanmi and a penalty from Sergio Canales, which came after Cyle Larin's third goal in four matches had drawn Valladolid level.
Rayo Vallecano and Sevilla shared the points after an exciting draw in Vallecas after an exciting 1-1 draw.
Rayo controlled most of the ball after another energetic display but fell behind after Suso's 27th minute shot took a big deflection, but the home side equalized in the 65th minute when Florian Lejeune nodded home from a corner.
Mallorca won 4-2 at home to Villarreal, who have now lost their last four matches and who weren't helped after Manu Trigueros was sent off just a minute after Tino Kadewere had put the home side ahead.
Jose Luis Morales drew Villarreal level in the 42nd minute, but Rodriguez put Mallorca ahead just two minutes later.
Samuel Chukwueze leveled again early in the second half, but Villarreal had no replay to Rodriguez's second of the game and Vedat Muriqi added a fourth for Mallorca in the 63rd minute.
Espanyol captain Sergi Darder scored an excellent 91st minute goal to give his side a vital 1-0 win away to Elche.
Darder was given space to advance and score with a powerful shot, 10 minutes after their rivals were reduced to 10 men after Elche's Jose Carmona was sent off for a high challenge.
Girona thrashed Almeria 6-2 on Friday night with Valentin Castellano, Viktor Tsygankov, Rodrigo Riquelme, Javi Hernandez, Ivan Martin and Cristhian Stuani all scoring for the home side.