Coutinho put Barca ahead after 11 minutes when he rolled the ball into an open net and Paulinho did the same just minutes later to compound Villarreal's misery.
After a lull in the attacking, Barca gifted the visitors a few attacks before Andres Iniesta and Messi linked up for another trademark goal. Dinking the ball over the Villarreal back four, the Spaniard timed his pass to perfection, beating the offside trap and sending Messi through on goal.
If the pass was impressive, the finish was even better. Taking the ball in his stride, the Argentine met it with a first-time, side-foot volley and delicately swept the ball beyond Asenjo.
3-0 at half-time and Barcelona's unbeaten run looked set to live another day.