Le sommet de la dernière, celle de Saint-Just était situé à 13 km de l'arrivée. Le Sud-Africain a profité de cette difficulté pour rejoindre les deux échappés, issus du groupe de quinze formé en début d'étape : Tiesj Benoot (Lotto Soudal) et Nicolas Roche (Sunweb). L'Irlandais a été distancé à 8 km du but. Impey a ensuite battu Benoot à l'arrivée. Le Français Julian Alaphilippe (Deceunick-QuickStep) qui a franchi l'arrivée au sein du peloton à 16:25 du vainqueur, a conservé son maillot jaune de leader. Il possède toujours 23 secondes d'avance sur l'Italien Giulio Ciccone et 53 sur le Français Thibaut Pinot.

Le début de l'étape a été marqué par la lourde chute d'Alessandro De Marchi (CCC), attaquant la veille et dernier compagnon d'échappée de Thomas De Gendt. L'Italien est resté plusieurs minutes au sol avant d'être évacué en ambulance vers l'hôpital. Il est ainsi devenu le 5e coureurs à quitter cette 106e édition de la Grande Boucle.

L'échappée du jour s'est formée après 15,5 km lorsque 14 coureurs, dont trois Belges Oliver Naesen (AG2R La Mondiale), Jasper Stuyven (Trek-Segafredo) et Tiesj Benoot (Lotto Soudal), sont sortis du peloton. Les onze autres coureurs étaient Lukas Pöstlberger (Bora), Ivan Garcia Cortina (Bahrain-Merida), Jan Tratnik (Bahrain-Merida), Tony Martin (Jumbo-Visma), Simon Clarke (EF Education First), Daril Impey (Mitchelton-Scott), Nicolas Roche (Sunweb), Jesus Herrada (Cofidis), Tiesj Benoot (Lotto Soudal), Romain Sicard (Total-Direct Energie), Edvald Boasson Hagen (Dimension Data) et Anthony Delaplace (Arkea-Samsic). Au total 14 des 22 formations étaient présentes dans ce groupe.

Parti en contre, l'Espagnol Marc Soler (Movistar) les a rejoints après 36 km de course. Au total 14 des 22 formations étaient présentes dans ce groupe. Les attaques se sont multipliées au sein des échappés dans les derniers quarante kilomètres ce qui l'a fait exploser. Benoot et Roche pensaient être partis pour la victoire. C'était sans compter sur Impey, 34 ans, qui a réagi au bon moment pour décrocher sa première victoire dans le Tour après avoir déjà porté le maillot jaune pendant deux jours en 2013. C'est déjà son 5e succès en 2019 et le 32e en carrière.

La grosse majorité du peloton n'avait aucun intérêt à assurer la chasse compte tenu de la composition de l'échappée. Du coup, les fuyards ont rapidement creusé un écart qui n'a cessé de se creuser. Aucun des quinze attaquants ne menaçait les leaders du général qui ont ainsi passé une étape tranquille.

Lundi, la 10e étape sur la distance de 217,5 km entre Saint-Flour et Albi constituera l'ultime effort avant la première journée de repos du Tour 2019 qui attend les coureurs mardi. Malgré 4 côtes (une de 4e catégorie et trois de 3e catégorie, la dernière à 54 km de l'arrivée) elle devrait de nouveau se révéler favorable aux sprinters.