The Catalans avoided a first league loss since November with a thumping left-foot strike from Luis Suarez deep into added time after captain and top scorer Messi gave them hope with a deadly free kick in the 90th minute.
The draw saw Barca’s lead over Atletico Madrid, who earlier won 2-0 at home to Girona, trimmed to eight points ahead of Saturday’s top-of-the-table clash at the Nou Camp. Barcelona have 70 points to Atletico’s 62 with eight games left.
Even without Messi, Gerard Pique and Ivan Rakitic in their starting lineup, the visitors still strolled into the lead through a Philippe Coutinho goal in the 12th minute, which Brazilian forward Malcom soon doubled with a header.
But Villarreal, who began the game one point above the relegation zone, hauled themselves into contention with a strike from 19-year-old Samuel Chukwueze midway through the first half.
Cameroon striker Karl Toko Ekambi took advantage of slack positioning from Barca goalkeeper Marc-Andre ter Stegen to equalise soon after the interval and Vicente Iborra completed the home side’s remarkable revival just after the hour mark.
Barca’s Argentine talisman Messi was called from the bench to rescue the champions but instead Villarreal increased their lead with a strike from their substitute Carlos Bacca.
Villarreal’s Alvaro Gonzalez was then dismissed for a second booking with four minutes remaining, paving the way for South Americans Messi and Suarez to strike for Barcelona and produce a remarkable finish to an enthralling contest.
Barcelona's Luis Suarez in action with Villarreal's Alvaro - La Liga Santander - Villarreal v FC Barcelona - Estadio de la Ceramica, Villarreal, Spain - April 2, 2019. (Photo: Reuters)
“It was a crazy game, one which it seemed either side could have won comfortably, and it speaks volumes about the strength of this league, where you can never assume you’re going to win a game easily,” said Barca coach Ernesto Valverde.
“It was very important not to lose, even though we wanted the three points. The sensation we felt with the late comeback makes us feel very good, it shows we are never ready to give in. If we’d lost we’d be feeling different about the Atletico game.”
EARLY ADVANTAGE
Barca seized an early advantage when Brazilian Malcom tore down the right wing and rolled the ball across the goal for Coutinho to tap into an empty net.
Malcom then scored his first goal in La Liga by heading home a cross from Arturo Vidal, while Coutinho should have made it 3-0 but his attempted chip bounced off the far post.
Villarreal got back into the game with the help of veteran midfielder Santi Cazorla, who picked out Chukwueze with an incisive pass, and although the Nigerian shot against the post, he calmly tucked the rebound into the net.
The hosts were galvanised and produced a bold and exciting display of counter-attacking football that made it easy to forget they have been struggling at the foot of the table for most of the season.
But, spurred on by Messi, Barca roared back to life, showing why they enjoy such a generous lead at the top of the league.
Despite the euphoria of the game’s finale, Valverde urged his players to improve for the rest of the season as they look to win a treble of La Liga, Champions League and Copa del Rey.
“This game should help us a lot with the games we have left and make us realise that there’s still a lot left to do,” he said with Atletico up next and Manchester United waiting in next week’s Champions league quarter-final, first leg.
“We can’t allow our opponents to outnumber us in attack like they did today, if we are to attack well we need to defend well.”