Robert Lewandowski added to his league-leading tally with two second-half goals.
The Poland international striker has scored nine times in his last nine league games and now has 25 in La Liga, three more than Madrid's Kylian Mbappe.
"For me the most important thing is what I can do to help the team," Lewandowski said.
"I know that if I score two goals, I'll be helping my team. As a striker it's important to have confidence for when the ball comes to me."
Barcelona went in front with an own-goal by Girona defender Ladislav Krejci in the first half. Ferran Torres added the fourth goal for Barcelona in the final minutes at Montjuic stadium.
Arnaut Danjuma scored early in the second half for mid-table Girona.
On Saturday, Madrid had moved level on points with Barcelona with a 3-2 victory over Leganes at home.
It was Barcelona's sixth win in a row in all competitions, and 11th in the last 12 matches. Hansi Flick's team are yet to lose in 20 games this year.
"We are in great form at the moment and we are creating a lot of chances when we have the ball," Flick said.
"What I take from today is our ability to react after the break.
"The great thing about my team is that we always want to score goals and everyone likes to see that."
Also on Sunday, fifth-placed Villarreal won 2-1 at Getafe to gain ground on fourth-placed Athletic Bilbao, who couldn't manage more than a 0-0 home draw with Osasuna.
Real Betis came from behind to beat rivals Sevilla 2-1 at home and win their first league derby since 2018.
Ruben Vargas put the visitors ahead in the 17th minute before Johnny Cardoso scored for Betis in the 25th and Cucho Hernandez struck in first-half added time.
Betis strengthened its hold on sixth place and a European qualification spot. Sevilla — who have lost two in a row — stayed 11th.
Valencia beat Real Mallorca 1-0 with Diego Lopez scoring the winner in the 50th minute.