Déroulement de la course
164 coureurs sont au départ de la 8e étape. Le peloton passe le kilomètre 0 à 11 h 24 et Marco Frapporti, Nathan Brown et Damiano Cima sortent du peloton dès le départ. Ils comptent 3 minutes d'avance après 20 km de course lorsque Brown se relève. Après 40 km, l'écart semble se stabiliser sous les 5 minutes. Les équipiers d'Arnaud Démare et du maillot cyclamen Pascal Ackermann contrôlent l'écart autour de 5 minutes 40 lorsqu'il reste 150 km à parcourir. Le sprint intermédiaire est remporté par Cima devant Frappori et dans le peloton, Arnaud Démare passe devant Pascal Ackermann.
À 100 kilomètres de l'arrivée, l'équipe Lotto-Soudal remplace Groupama-FDJ au côté de Bora-Hansgrohe en tête de peloton. Cette fois-ci, lors du second sprint intermédiaire, Frapporti bat Cima et remporte 3 secondes de bonifications. Dans la première ascension du jour, Frapporti passe en tête. Dans le peloton Thomas De Gendt augmente l'allure et l'écart est réduit à 1 minutes 40. Marco Frapporti a moins de 10 secondes d'avance sur le peloton à 38 km de l'arrivée. Dans la deuxième ascension du jour, Giulio Ciccone sort derrière le dernier homme de tête mais les deux hommes se font reprendre. Louis Vervaeke accélère dans le final de l'ascension de Gabicce Monte avec Ciccone et François Bidard. À 10 km de l'arrivée, les hommes de tête ne comptent plus que 17 secondes et à 6,5 km, ils sont repris pas le peloton qui va pouvoir disputer le sprint. Dans la dernière ligne droite, Pascal Ackermann lance son sprint et est débordé par Caleb Ewan qui s'impose devant Elia Viviani et Ackermann. Le maillot rose est conservé par Valerio Conti.