Girona, who were visiting Barcelona's famous stadium for the first time in their history, took a shock lead inside three minutes, but the La Liga leaders turned the match around - scoring six unanswered goals - to collect all three points.
Barcelona boss Ernesto Valverde made three changes to the team that started against Chelsea on Tuesday night, with Ruben Semedo, Coutinho and Ousmane Dembele coming in for Sergi Roberto, Andres Iniesta and Paulinho.
As for the visitors, head coach Pablo Machin shuffled his pack following the 3-0 win over Leganes last time out. Choco Lozano - who left Barcelona B for Girona last month - was preferred to Cristhian Stuani in the final third of the field, while Pablo Maffeo and Pere Pons also returned to the XI.
An incredible start to the match saw Girona make the breakthrough inside the first three minutes, with Portu taking advantage of some slack defending from Samuel Umtiti before finding the back of the net with a calm finish.
Barcelona were level less than two minutes later, however, when a slick pass from Messi released Suarez, and the Uruguay international carefully placed the ball past Girona goalkeeper Bono.
Bono had to dive across his goal to keep out a Messi free kick in the 11th minute during a period where Barcelona's number 10 was setting up opportunities left, right and centre for his teammates. Dembele and Jordi Alba both profited from Messi's excellence, but neither could finish from inside the box.
Messi had a super chance to make it 2-1 in the 19th minute when he met a long-range Suarez pass, but Bernardo Espinosa managed to head over his own crossbar to prevent a certain goal.
Another smart piece of goalkeeping from Bono saw the 26-year-old keep out a Suarez effort in the 26th minute, before Messi fired one into the stands moments later.
Barcelona had their second in the 30th minute, however, when Messi danced past a host of defenders inside the Girona box before squeezing the ball into the bottom corner of the net.
Messi then made it 3-1 in the 37th minute when the Argentine's low free kick found the bottom corner as Girona gave themselves a mountain to climb ahead of the half-time break.
As it transpired, it was Barcelona that added another before the first period was up - Suarez tapping a low Coutinho cross into the back of the net following another wonderful piece of work from Messi.
Lozano had the first opening of the second period, but the former Barcelona B forward could only fire wide of the near post as Gerard Pique, who aggravated a knee problem, struggled to get across.
Suarez then curled the ball against the Girona post in the 54th minute after excellent work from Dembele, before Messi brought a smart save from Bono two minutes later.
Barcelona had their fifth in the 66th minute when Coutinho worked some space outside the Girona box before curling an unstoppable effort into the far corner of the net off the post.
Messi came close to scoring with another free kick 20 minutes from time, but Bono made a wonderful save.
The Girona goalkeeper could not prevent Barcelona from scoring their sixth in the 76th minute, however, as Suarez converted a low Dembele cross for his hat-trick.
Bono turned a Thomas Vermaelen header onto the crossbar in the 82nd minute as the pressure continued, but the full-time whistle was blown at 6-1 as Barcelona, who saw Ter Stegen pull off a couple of excellent late saves, stretched their unbeaten run to 32 league matches with a brilliant performance.
BARCELONA (4-3-3): Ter Stegen; Semedo, Pique (Vermaelen 64'), Umtiti, Alba; Busquets (Paulinho 69'), Rakitic (Roberto 77'), Coutinho; Dembele, Suarez, Messi
GIRONA (5-4-1): Bono; Maffeo, Ramalho, Juanpe, Bernardo, Aday (Planas 46'); Pere Pons, Granell; Portu (Luiz 71'), Borja Garcia (Aleix Garcia 63'); Lozano