Ronald Koeman's team continued their recent revival as Messi scored twice for the second straight game, with Barca taking a three-goal lead into half-time.
Griezmann also netted a double and assisted one of Messi's strikes in one of his finest showings in a Barca shirt after what has been a difficult spell since joining from Atletico Madrid in 2019.
The victory moves Barca up to third and within four points of Atletico Madrid and two of rivals Real Madrid, who are at Osasuna later on Saturday.
Marc-Andre ter Stegen was called into action inside two minutes, making a superb one-handed save to keep out Antonio Puertas' drive from outside the box.
That proved key when Barca moved into a 12th-minute lead, with Griezmann reacting sharply and comfortably beating Granada goalkeeper Rui Silva after Sergio Busquets' pass had deflected into his path off Roberto Soldado.
Ousmane Dembele shot wide but Barca did double their lead after 35 minutes. Griezmann led a counter-attack and fed Messi, who set himself before dispatching a wonderful finish into the top corner from 18 yards.
The hosts complained Busquets – who was making 600th Barca appearance in all competitions – had handled much earlier in the move, but the goal stood.
Messi then struck again three minutes before the break, arrowing a free-kick from the edge of the area into the bottom corner after Yan Eteki had blocked off Pedri in a dangerous position.
Barca made it four when Griezmann struck again shortly after the hour mark, the France forward controlling Dembele’s chip and sending an excellent right-footed finish beyond Silva.
With the result beyond doubt, Koeman promptly took the opportunity to give Messi, Dembele, Pedri and Frenkie de Jong a rest.
And Granada rounded off a miserable day when Madrid loanee Jesus Vallejo was sent off 12 minutes from time for tugging back Barca substitute Martin Braithwaite as he bore down on goal.