The win took sixth-placed Villarreal to 48 points, just one behind Sevilla, who sit fifth in the standings, while the top six clubs are separated by just 14 points.
Atletico Madrid and Valencia - third and fourth respectively - missed the opportunity to close on leaders Barcelona and second-placed Real Madrid, as they played out a 1-1 draw.
Lionel Messi scored a second-half hat-trick as Barcelona leapfrogged Real into top spot with a 6-1 thumping of 10-man Rayo Vallecano.
In Villarreal, the hosts hit the front with four minutes left in the first half when Giovani dos Santos scored a solo goal on the counter-attack.
Marcelino's men managed to produce another goal before the break with centre-back Mateo Musacchio heading Moi Gomez's corner into the net in stoppage time.
Celta, who had not lost in La Liga since January, pulled a goal back in the 50th minute when Augusto Fernandez headed Nolito's free-kick past Sergio Asenjo but that was as good as it got for the visitors, with Tomas Pina setting up two goals for Villarreal in the final 20 minutes.
The 27-year-old midfielder chipped the ball over Celta's defence in the 73rd minute for Luciano Vietto to score from a tight angle, while Pina found Gerard Moreno on the edge of the box with six minutes left and the striker slotted Villarreal's fourth goal.
The win kept Villarreal seven points clear of seventh-placed Malaga in La Liga's second UEFA Europa League qualification spot.
La Liga has often been criticised for a lack of competitiveness - with Barcelona and Real Madrid well ahead of the rest - but Spain's first division appears fine in comparison with the rest of Europe's top leagues at this stage of the season.
Of the top divisions in Spain, England, Germany, France and Italy, Ligue 1 has the smallest gap between the top six clubs with 12 points, while 23 points separate Bayern Munich and Augsburg in the Bundesliga.
In Madrid, hosts Atletico were left to rue missed opportunities as Valencia defender Shkodran Mustafi cancelled out Koke's first-half strike for the home side.
Atletico took eight shots with three on target at the Vicente Calderon, while Mustafi's header with 12 minutes left was the only one of Valencia's three efforts on goal that was on target.
The draw left Atletico with 55 points, six adrift of archrivals Real, who lost to Athletic Bilbao on Saturday.
In Sunday's other match, Real Sociedad edged out Espanyol 1-0.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.