Barcelona are now two games away from going the entire La Liga season unbeaten after a comfortable 5-1 victory over Villarreal.
First-half goals from Philippe Coutinho (11), Paulinho (16) and Lionel Messi (44) put Barcelona into a commanding lead.
Villarreal responded in the second with a strike which heavily defected off Nicola Sansone, but Ousmane Dembele turned on the style late on, tapping in the hosts' fourth in the 88th minute before he coolly dinked in his second of the night in injury time (90+3).
The result means the champions must avoid defeat to Levante and Real Sociedad to break the record for going unbeaten in a whole 20-team La Liga season. Villarreal, meanwhile, remain in sixth on 57 points.
Barcelona: Cillessen (7), Semedo (6), Pique (6), Vermaelen (6), Digne (7), Busquets (7), Iniesta (8), Paulinho (7), Coutinho (8), Dembele (9), Messi (8)
Subs: Suarez (6), Rakitic (8), Mina (N/A)
Villarreal: Asenjo (5), Gaspar (4), Alvaro (5), Victor Ruiz (5), Costa (4), Trigueros (5), Rodrigo (6), Fornals (6), Castillejo (5), Cheryshev (5), Bacca (4)
Subs: Sansone (6), Fuego (5), Unal (5)
Man of the match: Ousmane Dembele
Barcelona dominated the first half and they laid down their first marker through Coutinho, who tapped in the hosts' opener just 11 minutes in. The former Liverpool forward pounced on a rebound from Dembele's strike after the 20-year-old burst past three players to get his curled effort away.
Five minutes later, Paulinho doubled Barcelona's lead. Andres Iniesta, who is set to leave Barcelona at the end of the season, showed off his supreme vision as he sent through a perfectly-weighted pass to Lucas Digne, who squared across the goalmouth for the Brazil international to tap in.
With Villarreal struggling to even get out of their own half, and Carlos Bacca very isolated up front, Barcelona made it three on the stroke of half-time. Messi played an eye-catching one-two with Iniesta as the 33-year-old dinked the ball over the Villarreal backline before the Argentina international struck home.
Ousmane Dembele came in for Luis Suarez.
Marc-Andre Ter Stegen, Sergi Roberto (suspended), Samuel Umtiti, Jordi Alba and Ivan Rakitic dropped out for Jasper Cillessen, Nelson Semedo, Thomas Vermaelen, Lucas Digne and Paulinho.
For Villarreal, Jaume Costa and Pablo Fornals came in for Antonio Rukavina and Dani Raba.
Villarreal improved at the start of the second half and they pulled a goal back through substitute Sansone, although he did not know much about it. Pablo Fornal's strike deflected off the Italian and it got the better of Jasper Cillessen in goal.
The visitors rarely troubled again and Dembele put the icing on the cake with two goals in the final five minutes. In the 88th minute, the winger tapped in Ivan Rakitic's squared pass after a fine run from the Croatia international.
And in the 93rd minute, Dembele delighted the home fans with a brilliant solo goal as he beat Jaume Costa for pace before he chipped the ball over Sergio Asenjo into the net to complete the emphatic rout.
Man of the Match - Ousmane Dembele
Dembele entered the starting XI for Luis Suarez and he more than proved his worth in front of the expectant Nou Camp crowd. He was a constant thorn in the Villarreal defence and polished off an excellent display with two goals in the final minutes of the match. His second goal will be remembered for a long time.
Barcelona travel to Levante for their final away league game of the season - live on Sky Sports Football - on Sunday. Villarreal, meanwhile, face Deportivo on Saturday which will be live on the Sky Sports Football red button at 5:30pm.