Franck Ribery and Mario Gomez netted in the opening 23 minutes to give Bayern a flying start and Ribery then wrapped up the scoring with his second after Villarreal had pulled a goal back through Jonathan De Guzman
With Manchester City losing 2-1 at Napoli, Bayern now hold an unassailable five-point lead at the top of the standings
Villarreal, whose cause was not helped by two bad defensive errors for both of Ribery's goals, are still searching for their first point of the group stage.
The German giants came into the match needing only a draw to seal a place in the last 16 but with pride wounded by a 1-0 home defeat to Borussia Dortmund in the league at the weekend - a loss that saw Bayern's lead at the summit cut to two points.
It took Jupp Heynckes' men just two minutes to begin to banish the memory of that loss though as Ribery put the hosts ahead with a dink over Diego Lopez following good work by Toni Kroos, who had intercepted a terrible pass by Carlos Marchena.
Anatoliy Tymoschuk, Philip Lahm, David Alaba and Ribery then tried their luck as Bayern laid siege to the visitors' goal in the opening stages, and the home side were rewarded with a second goal from Gomez.
Tymoschuk was unlucky not to score himself as his long-range drive came back off the post, but Gomez was in the right place to slot home the rebound to leave Bayern further in control.
Villarreal, who had netted just one goal in losing each of their opening four matches, were already out of contention for a top-two berth but they still had a Europa League lifeline and they refused to give in at the Allianz Arena.
Borja Valero twice drew good saves from Manuel Neuer before the break, while Hernan Perez also tested the home custodian before the Spanish side pulled a goal back just after half-time.
Left-back Joan Oriol made good progress forward before chipping a ball across the edge of the box which De Guzman dispatched into bottom corner of the net with a blistering volley.
The Yellow Submarine could not make any more inroads, though, and Bayern restored their two-goal lead through Ribery in the 69th minute, and with it secured the victory.
The goal came from another awful mistake by the Villarreal defence, with Bruno Soriano the guilty party this time as his sloppy pass inside his own half was intercepted and Bayern quickly fed the ball out to Ribery, who rounded Lopez before slotting home.