Goals from Luis Suarez and Antoine Griezmann moved Quique Setien into a two-goal lead before the break. Lionel Messi had a goal ruled out by VAR for offside in the second half before substitute Ansu Fati put the gloss on the win late on.
Messi said before football was halted in March that Barca would not win the Champions League playing as they were playing. This performance -- away from home, against a Villarreal side unbeaten six games -- suggested they may be turning a corner. It would be dangerous to get carried away, but there were more positives here than there have been in a long, long time.
Among the highlights was Griezmann. The France international has been in the spotlight this week after starting three of the past four games on the bench. He kept his head down and worked hard on Sunday, though, and delivered the goods against Villarreal from a more familiar central role alongside Suarez.
And Messi, of course. No goals but two more assists. That's 19 in the league this season to pair with his 22 goals.
The performance probably comes too late as far as La Liga is concerned. Barca remain four points behind Madrid with just four games to play. Madrid's final four games? Alaves, Granada, Villarreal and Leganes. They need to drop points at least twice.
There were also big gaps in defence, especially early on, but maybe it has to be that way if Barca are going to get the most out of their attackers.
Manager rating out of 10
8 -- It's been a difficult week for Setien after back-to-back draws, but he deserves credit for the shape change that brought the best out of Griezmann. Will hope this performance proves an inflection point because, while La Liga is drifting away, Barca still have the Champions League to come next month.
Player ratings (1-10; 10 = best. Players introduced after 70 minutes get no rating)
DF Nelson Semedo, 7 -- With the front three more narrow, his pace on the right will be important if Barca stick with this formation.
DF Clement Lenglet, 7 -- One hairy moment when he was sold short by Semedo, but recovered well and was solid alongside Pique.
DF Jordi Alba, 8 -- Set up two goals to celebrate passing his driving test earlier this week.
MF Sergio Busquets, 7 -- Broke up Villarreal counter-attacks and gave the ball to those ahead of him to do the damage in the final third.
MF Sergi Roberto, 8 -- A really bright performance back in midfield. Good one-touch football and was cruelly denied an assist by VAR. There's a strong case to leave him in the middle and Semedo at right-back.
FW Lionel Messi, 9 -- Ran the game, forcing Villarreal to change their plan at half-time. Set up Suarez with a brilliant and determined run, and then teed up Griezmann with a back-heel. Had his own goal ruled out for an offside early in the build-up and rocked the bar with a free kick in stoppage time.
FW Luis Suarez, 7 -- His brilliant first-half strike took him on to 194 Barca goals, level with Ladislao Kubala as the club's third top scorer of all time. Just Cesar Rodriguez (232) and Messi (630) have more.
FW Antoine Griezmann, 8 -- It's no coincidence the Frenchman's best Barca performance in a while came as part of a front two. Crowned his display with a clever chipped effort from 20 yards.
MF Riqui Puig, 7 -- Fun and energetic once again. Is making a real case to be a first-team fixture next season.
MF Ivan Rakitic, 7 -- Did well after coming on, setting up one good chance for Vidal.
FW Martin Braithwaite, NR -- Introduced late on but still almost scored, forcing a great save from Asenjo in stoppage time.
FW Ansu Fati, NR -- The teenager's dream debut season continued with his sixth league goal of the campaign, cutting in from the left and finishing smartly.