Real Madrid closed to within 10 points of Barca in third ahead of the meeting between the two sides in two weeks, as Cristiano Ronaldo, Gareth Bale and Karim Benzema all scored in a 4-0 win over Sevilla yesterday.
Meanwhile, Valencia boss Gary Neville was called a "donkey" and urged "to go now" by the club's fans after losing 2-0 at home to Celta Vigo.
Ivan Rakitic and a controversial Neymar penalty had Barca on course for a 13th consecutive La Liga win before half-time.
"It is a positive result for us," said Barca boss Luis Enrique.
"It is a positive round of fixtures for us. One less (to go) and one point closer to our objectives."
Villarreal's bright start took Barca by surprise at El Madrigal as they hit the woodwork inside the first minute when a Manu Trigueros effort was turned towards his own goal by Arda Turan.
Yet, the visitors still struck first with some fortune as Lionel Messi's free-kick ricocheted off Luis Suarez and fell perfectly into the path of Rakitic to rifle home.
And worse was to come for the hosts when referee Jose Maria Sanchez Martinez pointed to the spot despite Sergio Asenjo clearly playing the ball as Neymar tried to round the goalkeeper.
Neymar put Barca's recent troubles from the spot behind him to dink home the penalty for his 27th goal of the season.
Pique was replaced by Mathieu early in the second period as Enrique looked to ensure his best defender was not suspended for the game against Madrid just after the international break.
Bakambu halved the deficit with a simple finish after Bravo had parried Denis Suarez's initial effort.
Asenjo also made a crucial contribution to Villarreal's
comeback with a stunning save to stop Neymar making it 3-1.
Moments later, Villarreal were level when the hapless Mathieu turned a corner into his own net.
Yet, Barca regained their composure in the final quarter to at least ensure their unbeaten run in all competitions stretches to 39 games.
Madrid will attempt to stop that run reaching 40 on April 2 and will be full of confidence as their 'BBC' front three of Ronaldo, Bale and Benzema started together and all scored for the first time in two months.
And Benzema responded with a thumping volley into the top corner from Bale's cross after just six minutes.
Sevilla had the chance to level from the penalty spot, but Keylor Navas flew to his right to deny Kevin Gameiro midway through the first-half.
Ronaldo also missed from the spot for the third time this season when he blazed over early in the second period.
Jese Rodriguez then pounced on some sloppy Sevilla defending to round off the scoring four minutes from time.
At the other end of the table, Valencia remain just six points above the relegation after a third consecutive league defeat.
The forceful reaction from the fans provoked a rethink from Neville over his initial decision to join up with the England squad in his role as an assistant coach to Roy Hodgson as he will now stay in Valencia until Thursday before meeting up with the national team.
"I'm the assistant coach for the national team of England, with 60 million people, but I understand the two or three million people in Valencia need my attention this week.
