Mallorca pulled one back through Ante Budimir but Barca added two more before half-time. Messi scored the third from the edge of the box before Luis Suarez produced an outrageous back-heel for the fourth.
Budimir scored his second of the night after the break but Messi completed his treble to restore Barca's three-goal lead as they moved back to the top of La Liga, ahead of Real Madrid on goal difference.
Messi's three sons presented him with his sixth Ballon d'Or, won in Paris on Monday, before the game to the background of "Messi" chants from the 70,000 supporters at Camp Nou. The Argentine then launched the campaign for his seventh Ballon d'Or with the latest in a string of dazzling displays. All three goals were top quality and he's now the top scorer in La Liga with 12 goals despite missing the start of the season through injury. With him in this form, anything remains possible for Barca, despite misgivings elsewhere.
A nod to Frenkie de Jong, too. Is there a better midfielder in the world right now? His assist for the Suarez goal was sublime. He would have had a second as well if not for sloppy finishing from Griezmann.
Individuals aside, though, the first 45 minutes was as impressive as Barca have played as a collective in a long time. The pressing was back, the full-backs pushed on and Messi was Messi.
Coach Ernesto Valverde will lament the individual errors that cost his side goals. Clement Lenglet let Budimir cut across him for the first and Ter Stegen failed to deal with a cross for the second.
Manager rating (out of 10)
7 -- Valverde's taken a lot of criticism this season so he deserves credit for the first-half performance. It was arguably the best his team has played this season. He may have stumbled across the right balance in midfield, although Arthur will have something to say about that when he's fit again.
Player ratings (1-10; 10 = best, players introduced after 70 minutes get no rating)
GK Marc-Andre ter Stegen, 6 -- Showed incredible vision and technique to set up Griezmann's opener. It was the second goal he's assisted this season -- not bad for a goalkeeper. There was little he could do about Mallorca's first goal but he was in no-man's land for the second, allowing Budimir a tap in.
DF Sergi Roberto, 7 -- Followed up a fine showing at Atletico Madrid with another good display on the right flank. He got forward a lot and linked well with the attackers, which is what the full-backs must do in this Barcelona system.
DF Gerard Pique, 6 -- Wasn't overly tested by a meek Mallorca side yet was somehow still part of a back four which leaked two goals.
DF Clement Lenglet, 6 -- Let Budimir get across him for the goal, which he, unfortunately, deflected past Ter Stegen. Made up for that with a couple of decent interceptions in the second half.
DF Junior Firpo, 6 -- Is improving but still playing within himself. He made a couple of bad decisions in the final third and the second goal came from the vacant space behind him on the left wing.
MF Sergio Busquets, 7 -- It's true he's not at the heights of his best years but Barcelona are much better when he's on the pitch. Brings structure and patience. He also pressed diligently against Mallorca.
MF Ivan Rakitic, 7 -- Barca have won three in a row since the Croatian came back into the side. Prior to that, he had only made one start all season. Valverde will have a tough decision to make when Arthur returns from injury.
MF Frenkie de Jong, 9 -- Has already established himself as Barca's best midfielder. His pass for Suarez showed how much he is improving in the final third, too. Another amazing run and pass created a golden chance for Griezmann.
FW Lionel Messi, 10 -- All three finishes were outstanding. He said retirement was "approaching" when he collected the Ballon d'Or on Monday but on this evidence, he has plenty of football left in his legs, even at almost 33.
FW Luis Suarez, 8 -- Had already hit the post when he scored an early contender for goal of the season. His back-heel after brilliant work from De Jong will surely be in the running for the Puskas Award next year.
FW Antoine Griezmann, 7 -- Opened the scoring with a fantastically taken goal, chipping Manuel Reina after running through from the halfway line.
MF Arturo Vidal, 6 -- Given half an hour in place of De Jong, who had earned a breather.
MF Carles Alena, N/R -- The midfielder made his first appearance since being taken off at half-time in the opening day defeat at Athletic Bilbao.
FW Carles Perez, N/R -- Came on for the final few minutes. Likely to get more game time at Inter Milan in midweek.