Meanwhile, Valencia manager 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.
Yet, Villarreal were more than worthy of a point and got their reward after the break through Cedric Bakambu and Jeremy Mathieu’s own goal.
“It is a positive result for us,” said Barca manager Luis Enrique.
“The best teams in the league have lost here, we’ve drawn. We were close to winning, but also could have lost.
“It is a positive round of fixtures for us. One less (to go) and one point closer to our objectives.”
However, Sevilla also have the chance to close the gap on Villarreal to just three points in the fight for the fourth Champions League place.
Celta are now also just six points off the top four in fifth.
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.
The hosts were then furious when Gerard Pique was pardoned a second yellow card for clearly stopping a Villarreal attack by handling the ball on the ground after just 23 minutes.
Villarreal coach Marcelino was expelled from the touchline for taking his protests too far.
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 Luis Enrique looked to ensure his best defender was not suspended for the game against Madrid just after the international break.
But that proved to be the turning point as Mathieu was constantly caught out.
Bakambu halved the deficit with a simple finish after Bravo had parried Denis Suarez’s initial effort.
Mathieu then gifted Bakambu the ball straight from kick-off, but the Congolese forward tried to tee up Roberto Soldado instead of going for goal himself and Javier Mascherano intercepted.
Soldado then missed a huge chance to level as he headed wide when unmarked from point-blank range.
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.
Barca regained their composure in the final quarter to ensure their unbeaten run in all competitions stretches to 39.
At the other end of the table, Valencia remain just six points above the relegation after a third consecutive league defeat.
Neville is set to join up with the England squad this week to fulfil his role as an assistant coach to Roy Hodgson, but his departure from the Mestalla could be a permanent one after the fans turned on him after John Guidetti opened the scoring for Celta 10 minutes from time.
The calls for the England coach and Singaporean owner Peter Lim to go increased when Hugo Mallo added a second for the visitors five minutes later.
Neville has now won just three of 16 La Liga games in charge.
Valencia also crashed out of the Europa League on away goals to Athletic Bilbao on Thursday.
Follow us on Twitter @NatSportUAE
Like us on Facebook at facebook.com/TheNationalSport