Giuseppe Rossi and Nilmar scored early in each half although the hosts could have scored even more as they enjoyed a return to form at El Madrigal.
On another night Rossi could have had a hat-trick but it mattered little as the Yellow Submarine ended a winless start to the season that had seen them second from bottom before Tuesday night.
Rossi had already forced a save from Mallorca goalkeeper Dudu Aouate before he grabbed the opener on eight minutes.
The Italy international had seen his first effort blocked by the goalkeeper's feet but from a similar distance he made no mistake with a low left-footed shot.
Villarreal midfielder Jonathan De Guzman, who moved from Mallorca last month, then fizzed a 25-yard free-kick over before Aouate made another save to this time to deny Nilmar.
Mallorca had been under siege but went into the break having shown some threat when Tomas Pina and Pablo Caceres both saw long-range efforts go wide just before the interval.
But just six minutes after the re-start Villarreal got themselves the breathing space of a 2-0 lead.
Nilmar ran onto a Borja Valero pass and sent an angled shot into the bottom-right corner.
From there it was always going to be a tough task for a Mallorca side whose only goal this season came through De Guzman on the opening day before his move.
The final half-hour was all one-way traffic with Rossi somehow denied at least another goal if not more.
Aouate made three more blocks to deny the diminutive striker before the final whistle, the best of which saw him diving to tip over a 20-yard drive.