Enes Unal came off the bench to score two late goals for Villarreal, denying Atletico Madrid victory and dealing Diego Simeone's men a huge blow in LaLiga's title race.
Antoine Griezmann's controversial penalty had Atletico on track for a 12th win in 13 games in all competitions, the striker scoring from 12 yards at Estadio de la Ceramica after he was harshly adjudged to be brought down by Jaume Costa.
Jan Oblak had been mostly untested in the Atletico goal but when Alvaro Gonzalez stood up a fine right-wing cross to the back post, Unal was there to nod home a deserved leveller for Villarreal with eight minutes to go.
And in the first minute of added time, Turkey international Unal tucked home at the back post, Daniele Bonera's cross having made its way through a crowded box to find the unmarked striker.
Griezmann had earlier wasted a golden opportunity to secure all three points for Atletico - now 11 points behind Barcelona - the LaLiga leaders having eased to a comfortable 2-0 win at home to Athletic Bilbao earlier on Sunday.
Atleti are winless in their last six league meetings with Villarreal and their title hopes, having been hurt by a narrow loss at Camp Nou earlier this month, now look over as Atleti imploded, Vitolo's stoppage-time red card compounding their misery.
Saul forced a first-minute save from Sergio Asenjo as Atletico made a rapid start.
Griezmann then collected a booking for fouling Roberto Soriano, which means the striker will be available for next month's derby with rivals Real Madrid after serving a one-game ban.
Villarreal had been on top but after Griezmann went down under Jaume Costa's clumsy challenge in the box, Atletico took the lead in the 20th minute.
Griezmann sent Asenjo the wrong way from 12 yards after a long delay, Villarreal's players claiming the France international deceived the officials.
Koke struck the post from Sime Vrsaljko's pullback as Atletico ran through the gears.
But at the other end Villarreal were close to levelling in the 31st minute, Pablo Fornals rifling narrowly wide after robbing Koke on the edge of the visitors' penalty area.
1 - Rodri Hernandez completed 56 of his 58 passes in this first half, at least 31 more than any Atletico player (Koke, 25/29). Helm. pic.twitter.com/F8iUkD6BVA— OptaJose (@OptaJose) March 18, 2018
Villarreal continued to show attacking intent after the break, with Rodri influential in midfield, Mario Gaspar hitting a ferocious 25-yard drive that Oblak collected well on the bounce.
Penalty appeals for an apparent handball in the Atleti box were rejected before the interval and the referee said no again when Jose Gimenez seemed to drag Carlos Bacca to the ground.
Griezmann should have wrapped up the points in the 70th minute when Diego Costa and Angel Correa combined to set up the striker, but he blazed his shot well over the crossbar and was whistled off by the home fans when Simeone substituted him.
That miss came back to haunt Atletico in incredible fashion as Unal struck only eight minutes after his introduction, guiding home a fine header from Gonzalez's right-wing cross.
With Atletico stunned by the equaliser, worse was to come as Bonera's cross was not cleared, Unal finding himself in space to beat Oblak from close range.
Vitolo then saw red for clashing with Nicola Sansone as Simeone's men - beaten 3-0 at Villarreal last season - endured another miserable visit that left their title hopes in tatters.
#VillarrealAtleti | 2-1 FULL TIME | @EnesUnal16 is the hero on @LaLigaEN Matchday 29 for #Villarreal ! He came on and scored a brace to win it for the Yellows! SUPER SUB!!! #Endavant ! pic.twitter.com/2C7Y23DXSE— Villarreal CF English (@Eng_Villarreal) March 18, 2018
Key Opta stats:
- Rodri Hernandez attempted 102 passes against Atletico (93 successfully), his highest ever tally in a LaLiga game.
- Antoine Griezmann has scored his first LaLiga goal against Villarreal, after 14 appearances.
- Enes Unal is the second substitute to score a brace in a LaLiga game against Atletico under Diego Simeone, after Andrija Delibasic with Rayo in September 2012.
- Only Cristiano Ronaldo (17) has scored more goals than Antoine Griezmann (16, level with Messi) in 2018 in all competitions.
- Vitolo is the first Atletico substitute to have been sent off in the same LaLiga game since Alessio Cerci against Valencia in October 2014.
- Atletico have conceded 42.8 per cent of their goals from headers in LaLiga this season (six of 14), the highest percentage of any team.
- Antoine Griezmann has been directly involved in 15 goals in his last nine games for Atletico in all competitions (11 goals and four assists).
- Atletico have won two penalties in their last four LaLiga games, as many as they had in their previous 39.
- This has been the second LaLiga game in which Griezmann has won and scored a penalty, after March 2016 versus Real Sociedad.
|PSG matches against Montellier and Dijon rearranged|
|Martial agent clouds long-term future after United trigger extension|
|Zverev to make major final in 2019, predicts Ferrero|
|Canelo, Crawford, Lomachenko and the other pound-for-pound contenders|
|Barcelona boss Valverde admits to Lyon uncertainty|
|Club World Cup: Maverick Quintero gets another chance on the big stage|
|Henderson to miss majority of Ireland´s Six Nations campaign|
|Gentner to play on despite father´s death|
|Just good banter – Australia and India not concerned by Paine-Kohli exchange|
|Titans CB Logan Ryan out for season with broken leg|
|Suns send Trevor Ariza to Wizards for Kelly Oubre, Austin Rivers|
|Mourinho charge for ´improper´ language dismissed|
|Are the Knicks for sale? Depends on the offer, says Dolan|
|Klopp´s Liverpool are vulnerable – Neuer|
|Warrington: Frampton not an elite fighter|
|I want to finish the job off - Yates confirms Giro d´Italia focus in 2019|
|Atletico confirm Filipe Luis hamstring injury|
|Best backs Schmidt to lead Lions in 2021|
|Barcelona´s Vermaelen out for a month with calf injury|
|India lose Shaw for Australia tour as defeat looms in Perth|
|We didn´t have much luck - Nedved dismayed by Atletico tie|
|Manchester City must control Schalke, Begiristain warns|
|Ibrahimovic hints at LA Galaxy stay|
|Latham fills his boots in Wellington with record-breaking knock|
|I´m not thinking ´thank God it´s Bayern´ – Klopp|
|Luis Garcia and Steve McManaman confident of Liverpool progress|
|Arsenal face BATE as Chelsea get Malmo in Europa League|
|Europa League last 32: Draw in full|
|Irwin urges Mourinho turnaround before PSG Champions League clash|
|Rush backs German Klopp to see off Bayern|
|Hope shines as West Indies blitz Bangladesh in Sylhet|
|United and PSG set for Champions League showdown|
|Ajax star De Ligt delighted to join Golden Boy alumni|
|Champions League last 16: Draw in full|
|Lyon strikes to put Australia on course for victory in Perth|
|Mourinho´s players below Manchester United standards, says Giggs|
|We´ve got to find a way to get better in a hurry - McVay challenges spluttering Rams|
|Van Dijk hails ´game-changer´ Shaqiri for downing Man United|
|LeBron praises magical Wall as Lakers fall flat on the road|
|Champions League last 16: Who could get who in Monday´s draw?|
|Pochettino urges fans to ´kill´ racism ahead of EFL Cup derby|
|Ajax star De Ligt wins Golden Boy award|
|Foles fuels Eagles´ upset win over Rams|
|Latham carries bat as New Zealand leave Sri Lanka reeling|
|Keep your cool, Virat – Paine and Kohli in another confrontation|
|Depleted Nuggets complete season sweep of Raptors|
|Fabinho was ´outstanding´, says Klopp|
|Patriots QB Brady on loss to Steelers: We aren´t playing well enough to win|
|Elliott says Cowboys´ shut-out loss to Colts was embarrassing|
|De Bruyne not worried about Liverpool title challenge|
|Sixers star Simmons makes history with triple-double|
|WATCH: Nowitzki receives standing ovation in first home game of season|
|Seattle´s playoff spot on hold after Seahawks suffer OT loss to 49ers|
|Cheika survives as Wallabies coach, Johnson appointed|
|Vikings remain in NFC playoff picture|
|Steelers stay ahead as Patriots lose AFC´s second seed|
|Lionel Messi is the best, says Amor|
|I´m still tired just looking at Robertson – Mourinho in awe of Liverpool intensity|
|Casillas takes swipe at Mourinho after United lose to Liverpool|
|Valverde relieved as Messi brilliance prevents another Levante nightmare|
|WATCH: Leno proposes to girlfriend after Bears clinch division title|
|Messi and Suarez the world´s best strike partnership, says Pique|
|Klopp: I cannot keep every Liverpool player happy|
|Messi and Suarez outscoring Real Madrid and Atletico in LaLiga|
|Levante 0 Barcelona 5: Marvellous Messi banishes ghosts of last season|
|Colts rout Cowboys to keep playoff hopes alive|
|Bears shake off Packers to win NFC North and return to playoffs|
|Mourinho explains Pogba omission and defends Lukaku´s Liverpool showing|
|Liverpool´s display against Manchester United one of the best, claims Klopp|
|Look away Jose! Damning stats expose Manchester United´s limp Liverpool loss|