The home side took a 1-0 lead into the interval following a smart finish from experienced midfielder Cani.
The Yellow Submarine's lead was doubled in the early stages of the second period when Manu Trigueros headed into the back of the net.
Barcelona opened their tally after 65 minutes, however, when Gabriel Paulista could only turn a Dani Alves cross into his own net. Another own goal - this time from Mateo Musacchio - then levelled it up with little over 10 minutes remaining.
Barcelona completed the turnaround in the latter stages when Lionel Messi found the corner from close range on what was an incredible night of football.
Read how it all unfolded in Sports Mole's minute-by-minute live commentary of the action below.
VILLARREAL: Asenjo; Mario, Musacchio, Gabriel, Jokic; Bruno, Pina, Trigueros, Cani; Giovani, Perbet
BARCELONA: Pinto; Alves, Mascherano, Bartra, Adriano; Xavi, Busquets, Iniesta; Sanchez, Messi, Pedro
4 - Barcelona are unbeaten in four league trips to El Madrigal (W3 D1), keeping a clean sheet in their last two. Voyage.— OptaJose (@OptaJose) April 27, 2014
0 - Marcelino Garcia Toral has never beaten Barcelona as a La Liga manager (D2 L5). Defiance.— OptaJose (@OptaJose) April 27, 2014
Busquets' emotional reaction after the moment of silence for former manager Tito Vilanova. Heartbreaking. pic.twitter.com/9mpQJa8SoU— Inside La Liga (@InsideLaLiga) April 27, 2014