Barcelona slumped to a 1-0 home defeat by Rayo Vallecano which pushed leaders Real Madrid a step closer to the La Liga title.
Pierre-Emerick Aubameyang fired Barcelona back into second place in La Liga after a narrow victory at Real Sociedad.
Karim Benzema's 83rd-minute goal was enough for Real Madrid to extend their lead at the top of La Liga to nine points with a 1-0 win at Rayo Vallecano.
The Copa del Rey derby match between Real Betis and Sevilla was suspended after a pole hurled from the stands hit Sevilla player Joan Jordan in the head on Saturday.
Memphis Depay and Philippe Coutinho scored late on at Villarreal as Barcelona won 3-1 to finally end their winless streak away from home under new coach Xavi.
Barcelona let a three-goal half-time lead slip to draw at Celta Vigo, while Juan Cuadrado's stoppage-time strike earned Juventus a 1-0 win over 10-man Fiorentina.