Real Madrid were left shell-shocked by a clever last-gasp Pablo Fornals goal as Villarreal earned a smash-and-grab 1-0 win at the Santiago Bernabeu.
LaLiga's champions largely dominated proceedings on home soil, but Villarreal snatched all three points and a first league victory at Madrid with three minutes left thanks to Fornals' exquisite chip after Enes Unal's shot was saved.
It compounded a day of utter frustration for an out-of-form Madrid, who felt they twice should have had a penalty in the first half.
Villarreal defender Alvaro Gonzalez was lucky to not face punishment for handball from a Gareth Bale header, while Cristiano Ronaldo was adamant he was fouled by Mario Gaspar on the stroke of half-time.
Referee Alberto Undiano Mallenco was unmoved on both occasions, while Madrid were further frustrated by a poor one-on-one miss by Ronaldo and some good work by Villarreal goalkeeper Sergio Asenjo.
Madrid have now won just once in five LaLiga matches and will be 19 points adrift of Barcelona if their Clasico rivals beat Real Sociedad on Sunday, while Villarreal are just one point adrift of Los Blancos in their bid to muscle in on the top four.
Isco saw an early effort blocked by Gaspar, with the Spain playmaker's tentative penalty claims for handball rightly going unheard.
Bale saw a goal ruled out after nodding in from Ronaldo's header back across goal, before Asenjo made a fine stop from Marcelo's rasping 35-yard drive.
He made an even better stop to palm Ronaldo's 25-yard dipping free-kick over the top via the crossbar, before the Portugal captain wastefully dinked over Asenjo and wide of the left post after latching onto Luka Modric's throughball.
Ronaldo went close again shortly after when he hit a stinging drive into the side-netting.
Madrid were unfortunate not to be awarded a penalty 10 minutes before half-time when Bale's header from Toni Kroos' left-wing cross was seemingly handled by Alvaro Gonzalez. And Madrid had more cause for consternation on the stroke of half-time.
Isco's teasing low cross was met by Ronaldo inside the six-yard box and saved brilliantly by Asenjo, but the forward was seemingly clipped by Gaspar when meeting the ball.
Villarreal brought Denis Cheryshev on as a half-time substitute and the former Madrid winger picked Casemiro's pocket before dragging wide from the edge of the box.
A lively start to the half saw Raphael Varane make a crucial intervention from Samu Castillejo's probing pass, while Asenjo was equal to a well-controlled Kroos volley.
Modric saw a 20-yard daisycutter well held by Asenjo, while the Croatia midfielder hit a fierce drive over the top from outside the area with 10 minutes remaining.
And Madrid were made to rue their lack of clinical edge in the 87th minute.
Villarreal launched a lightning counter-attack led by Cheryshev, who slipped in Unal and, although his shot was saved by Keylor Navas, Fornals was on hand to brilliantly clip his shot over the stranded Madrid goalkeeper to spark jubilant scenes on the away bench.
Key Opta stats:
- Real Madrid attempted 28 shots against Villarreal, the most for a team in a LaLiga game this season.
- Villarreal have won for the first time in their 18 league visits to Santiago Bernabeu (D5 L12)
- Isco has been substituted more times than any other Real Madrid player in LaLiga this season (10)
- Real Madrid have not won in five home games in LaLiga this term (D2 L3), the same as in the whole of last season (D4 L1) and more than in any other LaLiga season since 2006-07 (D4 L3).
|Swansea had to make ´Formula One´ Liverpool uncomfortable - Carvalhal|
|Swansea City 1 Liverpool 0: Mawson ends Reds´ unbeaten run|
|Juventus 1 Genoa 0: Douglas Costa goal closes the gap to leaders Napoli|
|Lingard knew Sanchez ´wanted to come Milly Rock with the mandem´|
|Wenger ecstatic with ´committed and focused´ Mkhitaryan after Sanchez swap|
|Sanchez on United move: I needed to feel loved|
|Sanchez takes aim at his critics as he says his Arsenal goodbyes|
|How will Alexis Sanchez compare to Manchester United´s post-Ferguson big deals?|
|Gunning for a move - Sanchez the latest big name to quit underachieving Arsenal|
|Stoger wants speedy Aubameyang resolution as Arsenal circle|
|WATCH: See how Manchester United welcomed Sanchez|
|WATCH: Treatment-room footage of Ronaldo head wound released|
|Always my intention to stay - De Bruyne thrilled by new City deal|
|Inter snap up Rafinha on loan from Barcelona|
|Sanchez on Man Utd move: I am joining the biggest club in the world|
|The big debate: Who wins from the Sanchez-Mkhitaryan deal?|
|Mkhitaryan wants to ´create history´ after ´dream´ Arsenal move|
|Do Arsenal or Man Utd get the better deal? Sanchez v Mkhitaryan in Opta numbers|
|Manchester City reward De Bruyne with new five-year deal|
|Arsenal and Man Utd agree Sanchez-Mkhitaryan swap|
|Spurs striker Kane voted England Men´s Player of the Year|
|Aubameyang behaviour ´unreal´, says Frankfurt boss Kovac|
|Van Persie: Feyenoord return a choice for continuity|
|Hamburg hire Hollerbach to replace Gisdol|
|New Bordeaux coach Poyet offered Malcom assurances|
|Rakip excited to link up with ´legend´ Hodgson at Crystal Palace|
|O´Neill rejects Scotland to stay on as Northern Ireland boss|
|Simeone: Atleti must seize early control against Sevilla|
|Vermaelen sidelined for two weeks|
|Silva ranks Man City star De Bruyne with Ronaldo among world´s best|
|Former England captain Armfield dies aged 82|
|Robinho set to join Sivasspor|
|Van Persie´s Feyenoord return ´beautiful and special´|
|Kepa pens new Athletic Bilbao deal amid Madrid speculation|
|PSG star Mbappe holds no grudge against Lopes after Lyon collision|
|Messi makes football better, says beaten Real Betis goalkeeper|
|Goretzka accepts vitriol from Schalke fans after Bayern move|
|What am I getting for my birthday? Arsenal-bound Mkhitaryan celebrates with Pogba|
|Ince: Sanchez snubbed City because United are miles bigger|
|Bale: Madrid will get back to their best|
|Valverde: Messi is the best player there is and there ever will be|
|Emery: Lyon loss unfair on PSG|
|Spalletti defends struggling Inter amid six-game winless run|
|Fekir: Lyon still targeting Champions League despite PSG win|
|Wenger suggests Sanchez is joining Manchester United for money|
|Hazard: Chelsea don´t need to buy a striker|
|Rakitic hails ´patient´ Barcelona after Real Betis rout|
|Neymar? I´d rather watch the golf, says Bale|
|Mbappe injury from goalkeeper collision ´nothing serious´|
|Don´t look back - Guardiola gives Manchester City title warning|
|Vermaelen to face tests on new hamstring injury|
|Conte wants ´point of reference´ striker as Barnes joins surprising Chelsea links|
|Sane the perfect tonic to Sanchez blues for City and Guardiola|
|Suarez scores 100th LaLiga goal as Messi reaches new milestones|
|Lyon 2 Paris Saint-Germain 1: 10-man leaders downed by twin wondergoals|
|Inter 1 Roma 1: Vecino snatches point on possible Dzeko farewell|
|Real Betis 0 Barcelona 5: Messi, Suarez rampant as leaders go 11 points clear|
|PSG star Mbappe injured in goalkeeper collision|
|Monchi: Roma will replace Dzeko|
|Kessie a far better player than I was, claims AC Milan coach Gattuso|
|Neymar to Real Madrid stories manufactured by Spanish press, claims Marquinhos|
|Cagliari 1 AC Milan 2: Kessie at the double in comeback win|
|Watford hire Javi Gracia as Marco Silva successor|
|I am happy with our squad - Pochettino denies Malcom rumours|
|Not much changed - Zidane boosted by clinical Madrid|
|No chance of January move, says Vidal|
|Selfie or stitches? Ronaldo bloodied after Madrid brace|
|Heynckes hails Bayern win: This is what sets us apart|
|Southampton 1 Tottenham 1: Kane earns visitors a point|
|Silva assured of chances at AC Milan after latest first-team snub|
|Goretzka´s Schalke return marred by abuse|
|Real Madrid 7 Deportivo La Coruna 1: Seven-up for Zidane´s men as Bale shines|
|Muller brings up 100 Bundesliga goals in Bayern win|
|Bayern Munich 4 Werder Bremen 2: Lewandowski & Muller at the double to spare champions´ blushes|
|Do Arsenal or Man Utd get the better deal? Sanchez v Mkhitaryan in Opta numbers|
|Pele ´fine´ and in ´no pain´ after reported health concerns|
|No mercenary? Sanchez endorses article defending imminent Man Utd move|
|Allegri expects Buffon to be ´fully recovered´ within a week|
|Atletico Madrid confirm Costa hamstring injury|
|Atalanta 0 Napoli 1: Mertens ends drought to keep visitors top|
|Alexis Sanchez boards plane ahead of reported Man United medical|
|Hamburg dismiss Gisdol after fourth loss in a row|
|Melbourne City 5 Adelaide United 0: Budzinksi & Vidosic braces inspire emphatic win|
|Marco Silva sacked by Watford following ´significant deterioration´|
|Deschamps knows my thoughts - Lucas Hernandez hints at France decision|
|Klopp: Liverpool wouldn´t sell to rivals during season|
|Giggs keen to help Bale overcome injury woes|
|Klopp in no rush to replace Coutinho|