Parti dès le premier kilomètre, le coureur de Lotto-Soudal est allé au bout après avoir lâché progressivement ses trois compagnons d'échappée. Sortis du peloton dans la dernière bosse du jour, les Français Julian Alaphilippe (Deceuninck-Quick Step) et Thibaut Pinot (Groupama-FDJ) ont terminé 2e et 3e à 6 secondes. Alaphilippe, qui glané 5 secondes de bonification au sommet de la côte de la Jaillère plus 6 à l'arrivée et encore 20 sur l'Italien Giulio Ciccone (Trek-Segafredo) dépossède ce dernier du maillot jaune. Le N.1 mondial avait déjà porté le maillot de leader du général lors des 4e et 5e étape après sa victoire à Epernay à l'arrivée de la troisième.

L'Australien Michael Matthews (Sunweb), 4e, a remporté le sprint du peloton à 26 secondes. Xandro Meurisse (Wanty-Gobert) a fini 7e et Greg Van Avermaet (CCC) 8e.

Alaphilippe possède désormais 23 secondes d'avance sur Ciccone et 53 sur Pinot. Le Gallois Geraint Thomas (Ineos), vainqueur du Tour 2018, pointe à la 5e place à 1:12 et son équipier colombien Egan Bernal à la 6e à 1:16.

De Gendt, qui a marqué un maximum de 29 points en montagne, se retrouve 2e dans ce classement avec 37 points à 6 de son équipier Tim Wellens (43) toujours porteur du maillot à pois.

Trois coureurs sont sortis du peloton dès le premier kilomètre de cette étape accidentée proposant sept côtes (cinq cols de 2e catégorie et deux de 3e). Thomas De Gendt, le Néerlandais Niki Terpstra (Total Direct Energie) et l'Américain Ben King (Dimension Data) ont rapidement été rejoints par l'Italien Alessandro De Marchi (CCC).

Les quatre leaders ont compté jusqu'à 4:45 d'avance.

Au sommet de la côte de la Croix de Part, la 5e de la journée, De Gendt et De Marchi se sont retrouvés en tête alors qu'il restait 67 km à parcourir. Dans la côte de la Jaillère, De Gendt est parti seul et a résisté jusqu'au bout.

Dimanche, jour de la fête nationale française, le peloton traversera l'Auvergne, dans le sens est-ouest, au cours d'une 9e étape entre Saint-Etienne et Brioude, la ville natale du Français Romain Bardet. Le parcours des 170,5 kilomètres, accidenté, propose trois côtes: le mur d'Aurec-sur-Loire (1e cat, 3,2 km à 11% au Km 36,5), la Côte des Guillaumanches (2e cat, 7,8 km à 41,1 % au Km 106) et la Côte de Saint-Just (3e cat, 3,6 km à 7,2 % au Km 157), à 13 bornes de l'arrivée.