Déroulement de la course
Le peloton de 162 coureurs, passe le km 0 à 12 h 08. Matteo Moschetti (Trek-Segafredo) est non-partant. Trois coureurs se dégagent rapidement : Marco Frapporti, Mirco Maestri et Damiano Cima. Les trois hommes creusent un écart rapidement allant jusqu'à le stabiliser à 5 minutes 30. Comme souvent, Miles Scotson travaille pour Arnaud Démare. Il est accompagné de Victor Campenaerts et un Deceuninck-Quick Step. L'écart redescend à 4 minutes à l'approche des cent des derniers kilomètres. Le sprint intermédiaire de San Zenone al Po est remporté par Damiano Cima. Dans le peloton, Arnaud Démare passe devant Pascal Ackermann et reprend provisoirement le maillot cyclamen pour 1 point.
À 60 km de l'arrivée, l'écart n'est plus que de trois minutes entre les deux groupes. Le peloton se rapproche des échappées, les équipiers de sprinteurs se placent en tête de peloton. Mirco Maestri passe en tête du second sprint intermédiaire. Les trois hommes sont repris à 25 km de l'arrivée. Le sprint peut commencer à se préparer. C'est un vent de face qui accompagne les coureurs en cette fin d'étape. Elia Viviani, Pascal Ackermann et Arnaud Démare sont côte à côte à 7 km de l'arrivée. Christian Knees tente sa chance à un peu plus de quatre kilomètres de l'arrivée et est repris rapidement. Sous la flamme rouge, le train de Groupama-FDJ est suivi par la Bora-Hansgrohe. Pascal Ackermann lance son sprint mais il est débordé par Caleb Ewan qui remporte son deuxième succès sur ce Giro devant Arnaud Démare, qui a été enfermé et qui récupère le maillot cyclamen. Valerio Conti conserve son maillot rose. Après l'étape, Elia Viviani annonce qu'il arrête son tour national sans avoir remporté de victoire.