Villarreal piled the pressure on under-fire Real Madrid coach Zinedine Zidane as they snatched a 1-0 win over the struggling La Liga champions at the Bernabeu.
Real reached the quarterfinals of the Copa del Rey — where they will face Leganes — in midweek, but started the day 16 points behind rivals Barcelona in the league.
And that massive gap remains in tact after a sublime finish from Pablo Fornals finished off an 87th-minute counter-attack from the Yellow Submarine, who had goalkeeper Sergio Asenjo to thank for a number of vital saves.
Combined with the Clasico loss to Barcelona last month, Real Madrid have now lost two consecutive league games at home for the first time since May 2 and 24, 2009.
For Villarreal, the result was their first-ever La Liga victory at the Bernabeu in 18 attempts, after 12 defeats and five draws.
Real Madrid now have just 32 points — 16 behind leaders Barcelona — after winning only half of their league games. That point total is the lowest through 18 matches since 2005-06, when they had 30 points, and president Florentino Perez resigned from his first stint in charge midway through the season.
On Saturday, the visitors threatened to break the deadlock after 11 minutes when Samu Castillejo tried to find Carlos Bacca with a precise pass, only for Raphael Varane to read the danger and produce a vital interception.
That prompted a prolonged spell of pressure from Real, who thought they had opened the scoring when Cristiano Ronaldo headed a Toni Kroos corner to Gareth Bale to nod home from close range, only for the Welshman to be correctly flagged for offside.
Marcelo’s thunderous left-footed drive from 30 yards then drew a brilliant save from Asenjo, who was soon called into action again to tip a swerving free-kick from Ronaldo on to the crossbar.
Villarreal still looked dangerous on their rare forays into the opposition half and Nacho did well to deny Bacca a clean shot on target with a well-timed block.
But Real were quick to respond in an entertaining contest and Luka Modric set Ronaldo clear on the right-hand side of the area, only for the Portuguese star to lift the ball over the onrushing Asenjo and wide of the far post.
Ronaldo then saw his close-range shot brilliantly saved by Asenjo with the last action of the first half, with Mario Gaspar perhaps fortunate not to concede a penalty for clipping Ronaldo as he raced onto Isco’s low cross.
Villarreal started the second period brightly and half-time substitute Denis Cheryshev fired wide on 47 minutes after taking advantage of some hesitant defending, before Kroos volleyed straight at Asenjo at the other end.
Modric also forced Asenjo into a routine save before the former Tottenham player blazed over the bar from 15 yards with 10 minutes remaining.
And the home side were made to pay for such profligacy when Villarreal grabbed the winner on the counter-attack after clearing a poor Real corner.
Cheryshev broke clear down the left and found Enes Unal in the centre of the penalty area, and although Unal’s shot was blocked by the onrushing Keylor Navas, it landed to Fornals to chip a first-time shot over the despairing goalkeeper.
Ronaldo personally outshot Villarreal 11-10, but he was held scoreless for the third consecutive game.