Der neutralisierte Start erfolgte in Châtillon-sur-Chalaronne auf der Place de la République. Die Fahrer überquerten nach wenigen Metern die Chalaronne und bogen links auf die Rue Barrit ab, ehe sie den Startort über die D2 in Richtung Süden verließen, wo das Rennen nach 4,2 Kilometern vor Sandrans freigegeben wurde.
Nach dem offiziellen Start führte die Strecke flach über Villars-les-Dombes weiter in Richtung Süden und drehte beim Château du Montellier gen Osten. Nach Chalamont erreichten die Fahrer bei Ambérieu-en-Bugey den Jura. Entlang der Albarine führte die Strecke nun stromaufwärts bis nach Plateau d’Hauteville, wo bei Kilometer 87,3 der Zwischensprint ausgefahren wurde. Dieser befand sich am Ende eines längeren flachen Anstiegs, der in Tenay begann. Nach dem Zwischensprint flachte die Straße etwas ab, ehe eine lange Abfahrt auf der D8 bis kurz vor Artemare führte. Nun passierten die Fahrer den Grand Colombier im Süden. Der Schlussanstieg begann in Culoz.
Die Auffahrt auf den Grand Colombier war 17,4 Kilometer lang und wies eine durchschnittliche Steigung von 7,1 % auf. Der Anstieg beinhaltete jedoch zwei kurze Flachstücke, die den Steigungsschnitt etwas drückten. Bereits auf den ersten sieben Kilometern, auf denen auch die bekannte Kehren-Kombination des Anstiegs befahren wurde, wurden maximale Steigungsprozente von bis zu 12 % erreicht. Im Anschluss flachte die Straße für rund zwei Kilometer ab, ehe vier weitere steile Kilometer folgten, wobei erneut Kilometerschnitte von bis zu 10 % befahren wurden. Nach einem weiteren flachen Kilometer lag die Durchschnittsteigung der letzten 3,4 Kilometer bei rund 7 %, wobei die letzten Meter deutlich steiler waren. Der Zielstrich befand sich auf der Passhöhe des Col du Grand Colombier auf einer Höhe von 1501 Metern. Insgesamt mussten im Finale 1245 Höhenmeter bewältigt werden, was den Schlussanstieg zu einer Bergwertung „hors catégorie“ machte.[1]
Nach rund 30 Kilometern formierte sich eine 20 Fahrer umfassende Fluchtgruppe, in der Harold Tejada, Cees Bol (beide Astana Qazaqstan), Michał Kwiatkowski (Ineos Grenadiers), Maxim Van Gils, Pascal Eenkhoorn (beide Lotto Dstny), Nelson Oliveira (Movistar), Georg Zimmermann, Mike Teunissen, Adrien Petit (alle Intermarché-Circus-Wanty), Jasper Stuyven (Lidl-Trek), Hugo Houle (Israel-Premier Tech), Quentin Pacher (Groupama-FDJ), James Shaw, Alberto Bettiol (beide EF Education-EasyPost), Matej Mohorič, Fred Wright (beide Bahrain Victorious), Pierre Latour (TotalEnergies), Kasper Asgreen (Soudal Quick-Step), Anthon Charmig (Uno-X) und Luca Mozzato (Arkéa-Samsic) vertreten waren. Im Hauptfeld übernahm das UAE Team Emirates die Nachführarbeit und ließ den Rückstand nur auf rund eineinhalb Minuten anwachsen.
In der zweiten Rennhälfte forcierte Matej Mohorič das Tempo im Anstieg zum Zwischensprint und mit Cees Bol, Pascal Eenkhoorn und Adrien Petit fielen die ersten Fahrer aus der Ausreißergruppe zurück. Nachdem sich Mike Teunissen im Zwischensprint vor Matej Mohorič und Anthon Charmig durchgesetzt hatte, folgte eine längere Abfahrt auf der auch Pierre Latour den Anschluss zur Spitze des Rennens verlor. Der Vorsprung der Ausreißer war unterdessen auf fast drei Minuten angewachsen. Im Peloton verlor Caleb Ewan (Lotto Dstny) den Kontakt zum Ende des Feldes und gab die Rundfahrt wenig später auf.
Auf Fuße des Grand Colombier betrug der Vorsprung der Spitzengruppe rund vier Minuten. Auf den ersten Kilometern des 17,4 Kilometer langen Schlussanstiegs setzte sich Quentin Pacher von seinen Fluchtgefährten ab. Dahinter formierte sich eine Dreiergruppe mit Harold Tejada, Maxim Van Gils und James Shaw die kurz darauf wieder zu dem Franzosen aufschließen konnte. Mit Michał Kwiatkowski kam ein weiterer bereits abgehängter Fahrer zurück, ehe der Pole rund 12 Kilometer vor dem Ziel angriff und seine Kontrahenten distanzierte. Im Hauptfeld hatte unterdessen das UAE Team Emirates die Tempoarbeit übernommen, konnte den Rückstand auf Michał Kwiatkowski jedoch nicht entscheidend verkürzen. Der Ineos Grenadiers Fahrer verteidigte seinen Vorsprung bis ins Ziel und setzte sich souverän 47 Sekunden vor Maxim Van Gils durch. Durch das Tempodiktat im Hauptfeld fielen mehr und mehr Fahrer zurück, ehe neben Jonas Vingegaard (Jumbo-Visma) und Tadej Pogačar (UAE Team Emirates) nur noch Jai Hindley (Bora-hansgrohe), Carlos Rodríguez, Thomas Pidcock (beide Ineos Grenadiers), Adam Yates (UAE Team Emirates), Simon Yates (Jayco AlUla) und Sepp Kuss (Jumbo-Visma) in der Favoritengruppe verblieben. Rund 500 Meter vor dem Ziel griff Tadej Pogačar an. Jonas Vingegaard folgte dem Slowenen, konnte jedoch wie bereits auf der 9. Etappe nicht am Hinterrad seines größten Konkurrenten bleiben. Der Däne verlor vier Sekunden auf Tadej Pogačar, der auf den letzten Metern an James Shaw und Harold Tejada vorbeiging und sich als Dritter vier Bonussekunden sicherte. Mit einer kleinen Lücke folgte Thomas Pidcock, der zwei Sekunden auf Jai Hindley herausfuhr. Simon Yates, Adam Yates, Carlos Rodríguez und Sepp Kuss erreichten das Ziel ebenfalls mit geringen Zeitabständen.
Jonas Vingegaard verteidigte die Gesamtführung, lag nun jedoch nur noch neuen Sekunden vor Tadej Pogačar, der weiterhin die Nachwuchswertung anführte. Der Slowene rückte zudem in der Bergwertung auf den zweiten Rang vor und lag nur noch 15 Punkte hinter Neilson Powless (EF Education-EasyPost). Pello Bilbao (Bahrain Victorious) rutschte vom fünften auf den siebten Gesamtrang ab, während Sepp Kuss den Franzosen Thibaut Pinot (Groupama-FDJ) aus den Top 10 verdrängte. Jasper Philipsen (Alpecin-Deceuninck) führte die Punktewertung mit einem Vorsprung von mehr als 100 Punkten weiterhin souverän an. In der Mannschaftswertung rückten die Ineos Grenadiers auf den ersten Rang vor, obwohl sie mit Ben Turner einen Fahrer verloren. Aufgrund der zwei Aufgaben verblieben 165 Athleten im Fahrerfeld, von denen Michał Kwiatkowski zum kämpferischsten Fahrer gewählt wurde.[2][3]