Après plusieurs tentatives avortées, l'échappée du jour se constitue à 147 kilomètres de l'arrivée. 14 hommes la compose : le maillot bleu de meilleur grimpeur Geoffrey Bouchard et Andrea Vendrame (AG2R Citroën), le champion de Belgique Dries De Bondt (Alpecin-Fenix), Simone Ravanelli et Natnael Tesfatsion (Androni-Giocattoli), Mikkel Honoré (Deceuninck Quick-Step), Vincenzo Albanese (Eolo-Kometa), Simone Petilli (Intermarché Wanty-Gobert), Guy Niv (Israël Start-Up Nation), George Bennett (Jumbo-Visma), Chris Hamilton (Team DSM), Victor Campenaerts (Qhubeka-Assos), Gianluca Brambilla (Trek-Segafredo) et Diego Ulissi (UAE). Une douzaine de kilomètres plus loin, deux hommes rejoignent les fuyards. Il s'agit de Nicolas Edet (Cofidis) et de Giovanni Visconti (Bardiani). Au passo della Consuma, col de deuxième catégorie et deuxième difficulté de l'étape (80 km de l'arrivée), les seize échappés comptent une avance de 9 minutes sur le peloton emmené principalement par Filippo Ganna et les équipiers Ineos-Grenadiers du maillot rose Egan Bernal. La descente de ce col sous une pluie soutenue scinde l'échappée en plusieurs groupes. Dans l'ascension du passo della Calla, le groupe de tête se reconstitue partiellement mais, dans la dernière difficulté du jour, le passo del Carnaio, quatre coureurs s'isolent en tête de la course : Vendrame, Brambilla, Bennett et Hamilton. À trois kilomètres du terme, Vendrame et Hamilton réussissent à lâcher leurs deux compagnons d'échappée et se présentent ensemble à l'arrivée à Bagno di Romagna. Andrea Vendrame y remporte le sprint. Le peloton où les favoris se sont neutralisés arrive groupé à plus de 10 minutes du vainqueur.