Madrid’s hapless title defence continued on a rain swept Saturday at a sparsely attended Santiago Bernabeu.
Zinedine Zidane’s side dominated the game but succumbed to an 87th minute strike from Pablo Fornals, who chipped over goalkeeper Keylor Navas on the rebound.
This was after a lightning quick counter-attack as the visitors cleared a Real corner.
Madrid had a penalty appeal waved away in the first half when visiting defender Alvaro Gonzalez appeared to block a shot from Gareth Bale with his arm.
Cristiano Ronaldo was thwarted from close range on the stroke of halftime by a breathtaking save from Villarreal goalkeeper Sergio Asenjo.
“There is no explanation for this,” Zidane said. “We did everything we could, we had plenty of chances, but the ball just didn’t go in. It’s a difficult moment for us. It’s tough for the players, they gave their best. We didn’t deserve this result.”
Madrid also drew at Celta Vigo 2-2 a week ago, and lost to Barcelona 3-0 at the Bernabeu in its last match last year. It has gone four matches without a win.
“We have endured negative results recently, but we know that we can change this situation by winning again,” Zidane said. “We have to start winning, and winning convincingly, then things will change.”
Real remain fourth in the Liga standings on 32 points and are only one point and one place above Villarreal.
They could be a stunning 19 points behind runaway leaders Barcelona if Ernesto Valverde’s side beat Real Sociedad on Sunday.
Later on Saturday, second-placed Atletico Madrid play away to Eibar while third-placed Valencia visit Deportivo La Coruna.