The result at Estadio de la Ceramica made it three games without a win for Los Colchoneros.
Diego Simeone was looking for a response to the 1-0 defeat to Barcelona that left his side trailing LaLiga's top three by five points, but a wasteful showing meant it was unsuccessful.
A rip-roaring opening 45 minutes produced chances aplenty at either end, but the post and poor finishing stopped Atletico from taking advantage, while Jan Oblak was in inspired form in the visitors' net.
After the break there was initially a similar pattern to the contest, before Atletico upped the ante towards the end, but a woeful miss from Renan Lodi summed up its performance.
A thrilling first half began with three opportunities inside the first 15 minutes.
Oblak acrobatically stopped Samuel Chukwueze's long-range effort and then parried away Gerard Moreno's header, before Joao Felix's 30-yard strike hit the right-hand post.
Joao Felix wasted an even better opportunity 10 minutes later, firing over after being played through on goal by Koke.
But Atletico again had to rely on Oblak when he tipped Manu Trigueros's brilliant dipping volley on to the roof of the net just after the half hour.
Proceedings resumed at a similarly blistering pace and Villarreal should have taken the lead, Chukwueze inexplicably missing the target after being fed into the box by Trigueros.
Lodi somehow eclipsed Chukwueze's haplessness, however, shooting over from close range after Joao Felix's cross, and that proved to be Atletico's final clear-cut chance.