Lionel Messi found the net with a stunning right-footed strike to decide what was a topsy-turvy match against Villarreal, with Barcelona keeping the pressure on Real Madrid at the top of La Liga.
The Yellow Submarine twice held the lead at the Camp Nou, with on loan Real Madrid youngster Dennis Cheryshev giving Marcelino’s side an unlikely first half. Neymar equalised on the stroke of half time to ensure Barcelona went into the interval at 1-1.
But the away side found the net once again in the second half, with Luciano Vietto applying the finishing touch following excellent counter attacking play from Giovani Dos Santos and a mistake from Gerard Pique.
Barcelona responded almost instantly when Rafinha fired high into the net to distinguish what had been an accomplished display from the young midfielder, bringing his side level after 53 minutes.
And the Catalans took the lead themselves just two minutes later, with Messi nestling a right-footed, curling effort from the edge of the box into the bottom corner of Sergio Asenjo’s net.
Luis Suarez was withdrawn by Luis Enrique having missed a number of clearcut opportunities, showing his frustration by throwing his boots to the floor when taking his set on the bench. But his misses were not to prove costly as Barcelona saw out a 3-2 win.