With just seven days until the start of the Premier League season, the hosts, missing Wayne Routledge and Nathan Dyer out wide, rarely threatened and looked vulnerable at the back throughout.
After falling behind to an Ikechukwu Uche goal in the opening stages, Swansea fell further behind thanks to a sublime Bruno Soriano free-kick and a bizarre Denis Cheryshev effort after the break.
The match got off to a disappointing start for the home side as Uche capped a flowing Villarreal move by finding a way past goalkeeper Lukasz Fabianski.
Manu Trigueros drilled narrowly wide of the target as the Spanish side looked to extend their lead, before the Liberty Stadium outfit showed some signs of settling.
Jonjo Shelvey's cross from the right in the 14th minute found the head of Wilfried Bony, but the Ivorian was unable to get enough power on his effort which was comfortably collected by Sergio Asenjo.
Bony once again fell short with a header in the 25th minute - Villarreal clearing off the line after Bafetimbi Gomis had nodded the ball on from a Jefferson Montero cross.
And it was the visitors who struck the next blow when Soriano curled a delightful free-kick around the Swansea wall and beyond the reach of Fabianski from some 20 yards.
Swansea's defence - depleted due to the departure of Chico Flores, whose move to Lekhwiya was announced by the Qatari club during the first half - regularly looked susceptible.
And that weakness was exposed just before the hour mark when Swansea conceded a bizarre third.
After saving Cheryshev's initial strike, Fabianski touched his rebound onto the bar - the ball bouncing twice on the frame of the goal before falling kindly to the Russian who headed home.
Swansea get their Premier League campaign underway at Manchester United on August 16, while Villarreal face one more friendly against Real Zaragoza next weekend.