Two quickfire goals a little after the half-hour mark were all Athletic needed as they edged a game of few chances 2-0.
Moreno Mikel Rico headed in the opener in the 33rd minute and two minutes later Aritz Aduriz fired in a second, and Villarreal's comeback hopes were hampered by a red card for Bruno Soriano moments before half-time.
The win moved Athletic up to sixth in the table, one point behind Villarreal who remained fourth.
Chances were slow to come in the game. The first real sight of goal came for Aduriz in the 18th minute but he headed wide before Rico fired a shot left.
They made the breakthrough when Andoni Iraola crossed from the right and Rico rose to head across goal.
Villarreal had barely regrouped when Aduriz leathered home a low shot from the edge of the area, putting the hosts in complete control.
The visitors' frustrations boiled over as Soriano was booked for dissent soon after, earning a red when he fouled Markel Susaeta in first-half stoppage time.
In keeping with the first half, the second 45 minutes was slow to get going, the first chance of note coming when Carlos Gurpegi headed over in the 58th minute.
Villarreal were still able to muster the odd opening despite their numerical disadvantage, with Giovani Dos Santos seeing a shot parried by Gorka Iraizoz before the goalkeeper blocked another effort from Ruben Cani.
But Athletic were still in control and had further chances with Mikel San Jose heading over from a free-kick and Iker Munain seeing his shot saved by Andres Asenjo.
As it was they had already done enough to claim an important win over a rival.