Substitute Enes Unal scored twice in the final nine minutes as Villarreal dealt a major blow to Atletico Madrid's hopes of catching Barcelona at the top of La Liga with a 2-1 victory.
Atletico took the lead thanks to a penalty converted by Antoine Griezmann in the 20th minute after the officials ruled the France international was knocked over in the area chasing a Diego Costa knockdown.
But Unal equalised with a superb glancing header at a corner in the 82nd minute, and the Manchester City loanee then steered in a 92nd-minute winner when Simeone's side were again caught out at a set piece.
Atletico tempers boiled over in stoppage time and Vitolo was sent off after clashing with Nicola Sansone.
Villarreal moved into fifth place with their second straight victory.