Atletico Madrid missed the chance to leapfrog Real Madrid and finish second in LaLiga on the final day of the season.
Jorge Pascual scored Villarreal’s last-gasp equaliser in a 2-2 draw.
Antoine Griezmann laid on two goals for Angel Correa after Nicolas Jackson put Villarreal ahead early on.
But Axel Witsel’s red card saw Diego Simeone’s side come under mounting pressure, which told when Pascual converted two minutes into stoppage time.
That meant Atletico finished the season one point adrift of their city rivals in third, in spite of Los Blancos labouring to a 1-1 draw with Athletic Bilbao on Sunday.
Pablo Barrios’ error was punished as Villarreal went ahead after nine minutes, the teenager’s miscued header teeing up Jackson for a powerful finish across goal.
Atletico levelled when Correa turned Griezmann’s clever free-kick home nine minutes later.
The France international teed up Correa again with the latter rounding Filip Jorgensen to put the visitors 2-1 up after the break.
With Atletico seemingly heading for second place, Witsel was dismissed for fouling Giovani Lo Celso as the last man.
Villarreal made their numerical advantage count in the season’s dying moments, Pascual converting a rebound to condemn Simeone’s side to third.