Pour venger l'affront des « Matines brugeoises », le 8 juillet, une armée française forte de 47 000 hommes – 30 000 fantassins, 10 000 arbalétriers ou archers et 7 000 chevaliers –, commandés par Robert d’Artois, Raoul de Nesle et le comte de Saint-Pol, partit de Lille pour se diriger vers Courtrai. Les Français étaient persuadés qu’ils ne feraient qu’une bouchée des Flamands. D’ailleurs, leurs cavaliers avaient suspendu à leurs lances de petits balais, signifiant par là que leur mission était de balayer et nettoyer le pays.
Les Flamands, aidés par des troupes d’autres principautés « belges », opposèrent 20 000 fantassins (dont 5 000 arbalétriers et archers) et… fort peu de chevaliers. Le 11 juillet, ils réussirent à attirer les Français dans les marécages du village de Groeninghe et se protégèrent des assauts de la cavalerie par de longues piques terminées par une pointe en métal. Ces armes étaient extrêmement redoutées des chevaliers car elles permettaient aisément d’atteindre et de transpercer les chevaux. Les arbalètes à moufle flamandes, décochant des flèches sans pointe, mais pourvues à l’extrémité d’un « maquet » en bois, pleuvaient sur les cavaliers qui chutaient et s’embourbaient avec leurs lourdes armures, qui les paralysaient dans la boue. Cinq cents helmhouwers (« hacheurs de casques »), raconte Henri Conscience, les massacraient avec des masses en bois, couronnées de pointes en acier et montées sur de hauts manches, capables de percer casques et cuirasses.
Les Flamands ne voulurent pas faire de prisonniers et poursuivirent les fuyards sur plus de dix kilomètres. Les deux commandants en chef français, 61 seigneurs de haut rang et 1100 de leurs chevaliers périrent. Les vainqueurs ramassèrent entre 500 et 700 éperons dorés sur le champ de bataille et les suspendirent dans l’église Notre-Dame de Courtrai.
C’est une victoire capitale pour la Flandre, à nouveau dirigée par un gouverneur flamand (Robert de Béthune, fils de Guy de Dampierre), et pour les petits artisans. Mais deux ans plus tard, Philippe le Bel prendra sa revanche à la bataille de Mons-en-Pévèle, où il combattra lui-même en première ligne. Les éperons de Courtrai furent récupérés et transférés à Dijon. Mais cette consolation ne fut pas suffisante pour récupérer le comté, qui s’affirma comme principauté autonome.
De nos jours, le 11 juillet est le jour de la fête de la Communauté flamande de Belgique, parce qu’il commémore le plus haut fait historique dont se revendique en particulier le mouvement nationaliste flamand : la bataille des Éperons d’or. Mais le célèbre historien belge Henri Pirenne considère la victoire comme la première manifestation de l’unité belge, puisque des Wallons combattirent aux côtés des Flamands !