Diego Simeone’s side were left cursing their luck as Mario Mandzukic had a goal harshly ruled out at the start of the second half, but Villarreal were more than a match for the champions and were worthy of the victory, which was secured courtesy of Luciano Vietto’s 84th-minute strike.
The loss ended Atletico’s run of 27 league games without defeat at the Vicente Calderon.
Christian Stuani scored a last-minute winner for Espanyol as they claimed a 2-1 victory over 10-man Granada at Cornella-El Prat.
Felipe Caicedo opened the scoring for the hosts before the break with Youssef El Arabi levelling for Granada in the 61st minute.
El Grana defender Juan Carlos was sent off in the 82nd minute after picking up his second yellow card of the match, giving Espanyol an advantage and Stuani netted from close range with 30 seconds left on the clock.
Athletic Bilbao recovered from conceding in the third minute to salvage a 1-1 draw at Real Sociedad.
Bilbao keeper Gorka Iraizoz barely had time to get settled before he had to pick the ball out of his net after Carlos Vela put David Moyes’ side ahead, but Oscar de Marcos earned his side a draw by scoring shortly after the hour mark.
Minnows Eibar made light of Sevilla’s hugely impressive home record to claim a point from their trip to the Ramon Sanchez Pizjuan.
Both sides had chances to score, while Sevilla staged a late assault on the visiting goal as they tried to snatch the winner, but in the end defences came out on top as the match finished 0-0.