The away team took the lead immediately, as a lofted ball was controlled by Gameiro, who played the ball along to Vitolo to finish after 15 seconds.
Mbia doubled the lead before half time, heading in after Benoit Tremoulinas's cross.
Vietto pulled a goal back for Villarreal in the 48th minute, scoring from close range after a goalmouth scramble.
The two-goal cushion was restored just two minutes later though when Gameiro volleyed into the net after a free kick.
Rico was called into action a number of times, with Joel Campbell and Vietto threatening to pull a goal back for Villarreal on three separate occasions.