Com a vitória, a equipe alcança os 41 pontos e fica com dois de vantagem sobre o vice-líder, o Real Madrid, que no sábado tropeçou e empatou em 1 a 1 com o Betis.
Já o Barça cai para a quarta posição, ultrapassado pelo Atlético de Madrid, que mais cedo venceu o lanterna Almería por 2 a 1.
"Foi um jogo do nocaute. Estivemos bem, mas não fomos eficientes e isso definiu a partida", disse em entrevista à plataforma DAZN o técnico 'blaugrana', Xavi Hernández.
No início da partida no Estádio Olímpico Lluís Companys, o Girona abriu o placar em jogada rápida de contra-ataque que terminou com Artem Dovbyk (12') mandando a bola para as redes.
Mas a alegria dos visitantes durou apenas sete minutos, quando o artilheiro polonês Robert Lewandowski empatou de cabeça após cobrança de escanteio (19').
O gol não abalou o Girona, que no final do primeiro tempo voltou a ficar à frente no placar em boa jogada individual de Miguel Gutiérrez (40'), que invadiu a área e bateu bonito no canto do goleiro Iñaki Peña.
Na segunda etapa, o Barcelona se lançou ao ataque em busca do empate e se expôs ainda mais aos contra-ataques. Em um deles, o Girona fez o terceiro com Valery Fernández (80').
Nos acréscimos, o time 'blaugrana' diminuiu e renovou as esperanças com Ilkay Gündogan (90'+2) girando na área e batendo colocado. Mas o golpe de misericórdia veio antes do apito final com Christian Stuani (90'+6) aproveitando cruzamento do brasileiro Savinho para fazer o quarto gol do Girona.
"Foi um jogo para recordar, um grande jogo entre duas equipes que procuram o gol adversário e, além de termos conseguido a vitória, vimos duas equipes com a intenção de vencer", disse em entrevista coletiva o técnico do Girona, Michel.
- Atlético de Madrid sobe para terceiro -
O Atlético de Madrid sofreu para vencer o lanterna Almería por 2 a 1 e subiu para a terceira posição, antes de enfrentar a Lazio no meio de semana pela Liga dos Campeões.
Álvaro Morata (17') e Ángel Correa (22) fizeram os gols do time 'colchonero' no primeiro tempo, enquanto o Almería descontou na etapa final com o brasileiro Léo Baptistão (62').
O Atlético, que vinha de derrota para o Barcelona na última rodada, chegou a marcar no início do duelo com o francês Antoine Griezmann (6'), mas o gol foi anulado pelo VAR por impedimento.
Griezmann, vice-artilheiro do campeonato com nove gols, está a apenas três gols de igualar Luis Aragonés como maior artilheiro da história do Atlético de Madrid.
Apesar de não ter balançado as redes contra o Almería, o francês foi autor da assistência para o gol de Morata, que abriu o caminho para a vitória.
Também neste domingo, o jogo entre Granada e Athletic Bilbao foi suspenso após a morte de um torcedor nas arquibancadas.
O duelo foi interrompido aos 18 minutos do primeiro tempo, quando o time basco vencia por 1 a 0.
Com o incidente, os dois clubes e a LaLiga decidiram suspender a partida, que será retomada nesta segunda-feira (11), às 17h00 (horário de Brasília), a partir dos 17 minutos do primeiro tempo.
-- Jogos da 16ª rodada do Campeonato Espanhol e classificação:
- Sexta-feira:
Getafe - Valencia 1 - 0
- Sábado:
Alavés - Las Palmas 0 - 1
Betis - Real Madrid 1 - 1
Villarreal - Real Sociedad 0 - 3
Mallorca - Sevilla 1 - 0
- Domingo:
Atlético de Madrid - Almería 2 - 1
Granada - Athletic Bilbao (suspenso)
Cádiz - Osasuna 1 - 1
Barcelona - Girona 2 - 4
- Segunda-feira:
(17h00) Rayo Vallecano - Celta Vigo
Classificação: Pts J V E D Gp Gc SG
1. Girona 41 16 13 2 1 38 20 18
2. Real Madrid 39 16 12 3 1 34 10 24
3. Atlético de Madrid 34 15 11 1 3 32 14 18
4. Barcelona 34 16 10 4 2 30 18 12
5. Real Sociedad 29 16 8 5 3 29 18 11
6. Athletic Bilbao 28 15 8 4 3 30 18 12
7. Betis 26 16 6 8 2 19 17 2
8. Las Palmas 24 16 7 3 6 14 13 1
9. Getafe 22 16 5 7 4 18 20 -2
10. Valencia 19 16 5 4 7 17 21 -4
11. Rayo Vallecano 19 15 4 7 4 16 22 -6
12. Alavés 16 16 4 4 8 14 20 -6
13. Villarreal 16 16 4 4 8 22 29 -7
14. Osasuna 16 16 4 4 8 18 26 -8
15. Mallorca 14 16 2 8 6 14 20 -6
16. Sevilla 13 15 2 7 6 20 21 -1
17. Cádiz 13 16 2 7 7 13 23 -10
18. Celta Vigo 9 15 1 6 8 15 25 -10
19. Granada 7 15 1 4 10 19 35 -16
20. Almería 4 16 0 4 12 17 39 -22