Första halvlek slutade mållös, så det första målet föll istället strax efter paus efter att Gais målvakt Erik Krantz kommit ut fel på ett inlägg och Elyas Bouzaiene lämnats fri att slå in 1-0 för hemmalaget Degerfors.
2-0 kom strax därefter genom Gustav Lindgren som gjorde mål på volley.
Gais reducerade kort därefter till 1-2 genom Alexander Holmström, och i den 88:e minuten slog han till igen när han gjorde 2-2 via ribban.
Men göteborgarna mäktade inte med en vändning och är därmed utslagna inför sista omgången av svenska cupens gruppspel.
Degerfors leder å sin sida gruppen framför Elfsborg och Örgryte.
Värmlänningarna ställs mot Elfsborg på bortaplan nästa söndag.
Startelvorna:
Degerfors: Jakobsson, Diaby, Morgado, Wallin, Bouzaiene, Mammar, Mårtensson, Ohlsson, Holmén, Lindgren, Abdulla
Gais: Wendin Thomasson, Wängberg, Milovanovic, Lundgren, Celik, Frej, Cooper Love, Boudri, Lindberg, Bawa, Krantz