Real Madrid's La Liga title hopes suffered a huge blow with a surprise 1-0 defeat at Osasuna on Sunday which left Jose Mourinho's side seven points adrift of leaders Barcelona.
Villarreal closed to within six points of Real in third place when Giuseppe Rossi's spectacular goal gave them a 1-0 win in a pulsating encounter at Espanyol.
Osasuna's Javier Camunas broke the deadlock against Real with a shot off the post in the 62nd minute of a typically bruising battle in the intimidating Reyno de Navarra stadium.
Mourinho responded by throwing new loan signing Emmanuel Adebayor into the fray, but they were unable to score against a side who had not won in their previous eight games.
Real's second defeat of the season left them on 51 points from 21 games, seven behind champions Barca who won 3-0 at Hercules on Saturday to notch up their 15th consecutive victory.
"There are still a lot of points available, we have to keep on fighting," Real midfielder Xabi Alonso told Spanish television.
"It's always a difficult place to play and we knew the first goal would be vital, it fell to them and that made it even harder."
Real struggled to create chances and missed the guidance of Alonso, who started on the bench as he recovered from the flu.
Karim Benzema and Cristiano Ronaldo had good opportunities saved by Osasuna's Ricardo Lopez, but the abrasive Navarrans were a constant threat.
A long punt downfield was poked forward for Camunas to score after an hour, and Real responded immediately by throwing on debutant Adebayor, Kaka and Alonso.
Despite Real's late pressure it was Osasuna who came closest to scoring again, Krisztian Vadocz having a shot blocked on the line by Alvaro Arbeloa. Osasuna climbed to 16th, three points above the relegation places.
Villarreal's Italian striker Rossi took his tally for the season to 12 with a contender for goal of the season, controlling a long ball into the area at pace and blazing a shot into the roof of the net from a tight angle in the 45th minute.
Earlier, Gaizka Toquero scored both goals in Athletic Bilbao's 2-0 win at 10-man Atletico Madrid to increase the pressure on home coach Quique Sanchez Flores.
Bilbao's balding frontman, who wears the number two shirt, bagged his first goals of the season, volleying in unmarked just before the break and sliding in to double the lead in the 64th minute.
Atletico had been playing with 10 men from the 39th minute, when Luis Perea was harshly sent off after a clumsy challenge on Fernando Llorente in the area. The Spain striker fired the spot kick wide.
Sanchez Flores has been feeling the heat with his side out of Europe and the King's Cup. Sunday's defeat left them seventh in the standings, five points adrift of sixth-placed Bilbao and 10 short of the Champions League slots.
"Last year was much worse and we ended up winning two titles," Sanchez Flores said.
"We know we have tough times in front of us but now is when we need to be men to take things forward."