Substitute Adrian Lopez scored in the second minute of time added on to give the Spanish side the edge in Thursday's Europa League semifinal first-leg clash.
After the release of so much pain and anger earlier this week, it was perhaps no surprise that Liverpool's trip to El Madrigal was a relatively subdued affair.
The home side's supporters marked the long-awaited Hillsborough verdict by unfurling a flag in tribute to the 96 Liverpool fans who died at the English stadium 27 years ago.
Villarreal also paraded a giant inflatable submersible in the streets of the town, both celebrating its team's nickname of "The Yellow Submarine" and acknowledging the song by Merseyside's most famous export, the Beatles.
The tune was also played in the sold-out stadium ahead of the game, which seemed destined to end goalless until Denis Suarez found space behind the defense and squared the ball for Adrian to guide into the empty net.
Villarreal had begun the second half with intent as top scorer Cedric Bakambu headed against the post just two minutes after the restart. Liverpool also went close when Brazilian forward Firmino's 65th-minute shot was tipped onto the post by home keeper Sergio Asenjo.
With three minutes of regulation play remaining, Liverpool No. 1 Simon Mignolet denied Bakambu when the France-born Congo international was clear on goal -- and from the counter-attack Liverpool defender Alberto Moreno blazed his shot over the bar.
"We're going to throw the kitchen sink at them in the second leg," the German said after the defeat. "There's no shame in going out in the semifinals but if you are going to go out in the semis, then do so kicking and screaming."
Villarreal cruised past Sparta Prague to make the semis of Europe's second-tier club tournament for the third time, and coach Marcelino's team will be hoping to set up an all-Spanish final after matching Liverpool's milestone.
Two-time defending champion Sevilla scored two crucial away goals against Shakhtar Donetsk in Lviv in Thursday's other last-four match.
Sevilla took the lead in the sixth minute when Vitolo danced into the box and curled in a shot, but the Ukrainian champion leveled through Marlos and went to the halftime break ahead as the Brazilian midfielder set up Tara Stepanenko's close-range header.
However, Kevin Gameiro equalized from the penalty spot with nine minutes to play after Vitolo was fouled by Facundo Ferreyra.