Barcelona lost further ground on Primera Division title rivals Real Madrid after a goalless draw at relegation-threatened Villarreal.
The Catalans were particularly poor in the first half, during which Villarreal could have even taken the lead, while the second period saw them denied by a stout defensive performance and some good saves from Diego Lopez.
Real Madrid bounced back from their Copa del Rey exit by extending their lead over Barca to seven points with a 3-1 come-from-behind victory over bottom club Real Zaragoza at the Bernabeu.
Jose Mourinho's side, who were knocked out of the cup by their rivals in midweek despite a battling 2-2 draw at the Nou Camp, went behind to Angel Lafita's 11th-minute opener.
However, Kaka equalised just after the half-hour mark and Cristiano Ronaldo put the hosts ahead at the start of the second period before Mesut Ozil sealed the turnaround.
Fernando Llorente scored a hat-trick as Athletic Bilbao came from behind to beat Rayo Vallecano 3-2 in a pulsating clash at Vallecas.
Michu put Rayo ahead after 11 minutes only for Llorente to equalise five minutes later by heading home Inigo Perez's free-kick. The Spain international then put the visitors 2-1 in front with a wonderful turn and finish, but Alejandro Arribas took advantage of Gorka Iraizoz's error to make it 2-2 four minutes later.
Rayo then passed up a host of glorious opportunities either side of the break and were punished as Llorente powered home the winner midway through the second half.
Espanyol kept up their push at the sharp end of the Primera Division standings after a scrappy 1-0 win over Real Mallorca.
In a first half devoid of invention it was an error that gifted Espanyol the lead as Dudu Aouate collided with one of his own defenders and dropped the ball invitingly at Vladimir Weiss' feet for the Slovakian to slot home.
Aouate's day got even worse two minutes after the break as he was harshly sent off for bringing down Rui Fonte just outside the area.
Despite being down to 10 men Mallorca took the game to Espanyol for most of the second period and the hosts had keeper Kiko Casilla to thank for all three points as he denied Marvin Ogunjimi and Gonzalo Castro with fine saves.