Franco Russo scored an own goal in the 12th minute to give the home side an early lead before Manu Trigueros doubled their advantage in the 34th minute.
Dani Parejo made it 3-0 in the 87th minute when he scored a penalty, with Russo sent off the minute before.
The result means that Villarreal have climbed above Barcelona in the table and into sixth. They’re just a point behind fourth-placed Atletico Madrid.
Mallorca, on the other hand, are perilously close to the relegation zone. They’re 17th, two points clear of Cadiz in 18th.
Villarreal go to Andalusia next to lock horns with Real Betis before welcoming league leaders Real Madrid to La Ceramica.
Mallorca travel to Vallecas next to take on Rayo Vallecano in the quarter-final of the Copa del Rey before hosting Cadiz in what’s shaping up to be an absolutely massive fixture.