Full-backs Jordi Alba and Aleix Vidal helped put Barca ahead by forcing an own goal each, and Luis Suarez crowned a convincing performance in his 100th league appearance for the Blaugrana.
Dani Ceballos scored a match-winning brace for Real Madrid with his first goals for the club in a 2-1 win away to Alaves, and Los Merengues now sit two points below third-placed Sevilla.
The Andalusians saw their unbeaten streak come to an end in a 2-0 defeat at Atletico Madrid, who had goals from Antoine Griezmann and Yannick Carrasco to thank for a win that took them second.
Elsewhere, Inaki Williams' second-half brace couldn't inspire Athletic Bilbao to triumph at 10-man Malaga, who hit back from 3-1 down despite having midfielder Zdravko Kuzmanovic sent off to draw 3-3.
Saturday's La Liga Results
Atletico Madrid 2-0 Sevilla
Alaves 1-2 Real Madrid
Malaga 3-3 Athletic Bilbao
Girona 0-3 Barcelona
La Liga Table (Goal Difference)
1. Barcelona 18 (+18)
2. Atletico Madrid 14 (+8)
3. Sevilla 13 (+4)
4. Real Madrid 11 (+5)
5. Valencia 9 (+6)
6. Levante 9 (+4)
7. Real Sociedad 9 (+1)
8. Real Betis 9 (-1)
9. Athletic Bilbao 8 (+1)
10. Villarreal 7 (+1)
11. Leganes 7 (0)
12. Las Palmas 6 (-3)
13. Eibar 6 (-7)
14. Getafe 5 (-1)
15. Espanyol 5 (-5)
16. Girona 5 (-5)
17. Celta Vigo 4 (-2)
18. Deportivo La Coruna 4 (-5)
19. Malaga 1 (-10)
20. Alaves 0 (-9)
Visit Sky Sports to view La Liga's standings in full.
Girona captain Aday Benitez and goalkeeper Gorka Iraizoz bundled the ball past their own line either side of the break to hand Barcelona a two-goal cushion.
Suarez ensured at least one Barcelona player got on the scoresheet after he sprang free of Girona's defence and slotted past Iraizoz, however, and illustrated just how prolific a signing he's been for the club:
Ceballos rewarded Real manager Zinedine Zidane with two goals in his first start for the club, pairing up well with Marco Asensio in the build-up to scoring his opener after just 10 minutes at Alaves.
Barcelona loanee Munir El Haddadi teed up Manu Garcia for the equaliser after 40 minutes, but Ceballos responded with his second minutes later. Zidane sung the player's praises after the result, per Spanish newspaper AS:
"I'm happy for the player because it shows he's ready to play. He did really well. I'm happy for him, but as well as the goals he has had a good match, he played really well. I'm happy for him because at the end of the day he's had his opportunity, he wants to learn, and he'll get another chance."
Los Blancos could have won more decisively had Cristiano Ronaldo managed to make the most of his chances, but ESPN FC's Dermot Corrigan outlined the Portuguese's frustrations after hitting the woodwork on two occasions:
Back in Madrid, Carrasco helped ensure Atleti's fine start to the season continued after he gave his side the ideal start to the second half, making the breakthrough just a minute after the restart.
The Belgian winger was then involved in creating Griezmann's strike for the second as Los Rojiblancos maintained a 100 per cent start to life at the Estadio Wanda Metropolitano, per Kieran Canning of Agence France-Presse:
The 10 men of Malaga emerged late to take a point from their meeting with Athletic after summer signing Diego Rolan scored his first La Liga brace to match that of Los Leones star Williams.
Uruguay international Rolan responded to Aritz Aduriz's penalty with a delightfully chipped goal, but Malaga's fortunes turned when Kuzmanovic reacted badly to a yellow card following Williams' hammered first strike at the near post.
With a one-man advantage, Williams notched again and Athletic led 3-1, but Paul Baysse and Rolan scored in the 81st and 84th minutes to squeeze a result out of the fixture.
Athletic manager Jose Angel Ziganda will rue two points evading his grasp against a previously pointless Malaga team reduced to 10 men for half of their clash.