Avec quelques collines, la 8e étape offrait un potentiel certain pour une échappée. Mais à la fin, seul Jonas Abrahamsen (Uno-X Mobility) a formé l'échappée du jour, qui a été reprise très tôt. C'est ainsi qu'une arrivée massive a eu lieu après 183,4 kilomètres à Colombey-les-deux-Eglises, où Biniam Girmay (Intermarché-Wanty) s'est assuré la victoire du jour sur la dernière ligne droite ascendante. Jasper Philipsen (Alpecin-Decuninck) a pris la deuxième place devant Arnaud de Lie (Lotto-Dstny). Pascal Ackermann (Israel-Premier Tech) a pris la quatrième place.
Pour Girmay, il s'agit de la deuxième victoire du jour sur ce Tour de France, ce qui lui permet d'augmenter considérablement son avance au classement par points. Il compte désormais 216 points, contre 128 pour son premier poursuivant Philipsen. Mads Pedersen (Lidl-Trek), un concurrent pour ce classement spécial, ne s'est pas présenté à la 8e étape après avoir été blessé lors d'une chute.
Au classement général, il n'y a pas eu de changement aux premières places. Tadej Pogacar (Team UAE Emirates) reste en tête avec 33 secondes d'avance sur Remco Evenepoel (Soudal - Quick-Step). Suivent Jonas Vingegaard (Visma | Lease a Bike, +1:15) et Primoz Roglic (Red Bull-Bora-Hansgrohe, +1:36).
Avec de nombreux changements de direction et un terrain ondulé grâce à quelques montées plus faciles, l'étape semblait sur le papier prédestinée aux tentatives d'échappée. Avec Neilson Powless, Stefan Bissegger (EF Education EasyPost) et Jonas Abrahamsen (Uno-X Mobility), un trio s'est rapidement formé après le départ et a pu prendre environ deux minutes d'avance sur le peloton. Dans la première côte de la journée, la Côte de Vitteaux (3ème catégorie), Abrahamsen s'est assuré les deux points de la victoire après 24 kilomètres en tant que leader du classement de la montagne.
Dans le peloton, les attaques se sont poursuivies, avec notamment Ben Healy et Alberto Bettiol, deux coureurs d'EF Education EasyPost, qui ne sont pas allés bien loin. Plus tard, Romain Grégoire (Groupama-FDJ) et Jordan Jegat (TotalEnergies) se sont lancés à leur poursuite sans succès. En tête, Powless et Bissegger ont abandonné après une trentaine de kilomètres, laissant Abrahamsen poursuivre l'échappée en solitaire.
Le Norvégien s'est ensuite emparé des autres cols de la côte de Villy-En-Auxois (4ème catégorie) après 32 kilomètres et de la côte de Verrey-Sous-Salmaise (3ème catégorie) après 38 kilomètres. Son avance maximale était de 6:10 minutes. Abrahamsen a également remporté le sprint intermédiaire à Lamargelle après 59 kilomètres, Girmay s'est assuré la deuxième place depuis le peloton.
La dernière côte de la journée, la Côte de Santenoge (4ème catégorie), après 96 kilomètres, a également été remportée par Abrahamsen, qui s'est ainsi assuré les sept points de la montagne du jour et a porté son avance au classement spécial à 13 points sur Pogacar. Dans le peloton, Intermarché-Wanty, Alpecin-Deceuninck et Cofidis ont entre-temps organisé la poursuite. Mais à 50 kilomètres de l'arrivée, Abrahamsen a défendu une avance d'environ trois minutes.
La journée pluvieuse et fraîche a cependant coûté des forces, tant au leader Abrahamsen qu'au peloton. L'écart avec Abrahamsen a chuté à 40 secondes à 20 kilomètres de l'arrivée, mais derrière, certains coureurs sont sortis du peloton, comme Phil Bauhaus (Bahrain Victorious) et Michael Matthews (Jayco-AlUla).
A 15 kilomètres de l'arrivée, l'échappée d'Abrahamsen a pris fin. Les dix derniers kilomètres offraient encore deux collines non classées au peloton, et EF Education EasyPost, en particulier, a beaucoup travaillé en tête. Cela a notamment coûté à d'autres sprinteurs, comme Fabio Jakobsen (dsm-firmenich PostNL), de rejoindre le groupe. Mais au total, le peloton est resté en grande partie groupé. Un long sprint du peloton s'est déroulé dans la dernière ligne droite, avec Girmay comme vainqueur du jour.