L'échappée prend forme dès le départ, avec trois coureurs : le Belge Lawrence Naesen (AG2R Citroën) et les deux Italiens Mattia Bais (Drone Hopper-Androni Giocattoli) et Alessandro de Marchi (Israel-Premier Tech). L'écart maximal avec le peloton est de six minutes.
Au sprint intermédiaire de Civitanova Marche, Mattia Bais passe en tête, avec quatre minutes et vingt-six secondes d'avance sur le peloton ; où les sprinteurs se disputent dans les points : l'Italien Giacomo Nizzolo (Israel-Premier Tech) devance le Français Arnaud Démare (Groupama FDJ) et l'Erythréen Biniam Girmay (Intermarché-Wanty-Gobert Matériaux). Dans la montée du Crocette di Montecosaro, le Danois Christophen Juul Jensen (BikeExchange Jayco) attaque dans le peloton, il est repris huit kilomètres plus tard. Au sommet, Alessandro de Marchi passe en tête ; le peloton passe avec quatre minutes et vingt-et-une secondes de retard, devancé par Juul Jensen de cinq secondes, qui s'est relevé. Au sommet de Recanati, De Marchi passe de nouveau en tête, avec trois minutes d'avance sur le peloton ; dans lequel l'Espagnol David de la Cruz (Astana Qazaqstan) a tenté de s'échapper, en vain, et dont le Britannique Mark Cavendish (Quick-Step Alpha Vinyl) ne parvient plus à suivre le rythme.
Au sprint intermédiaire de Filottrano, Mattia Bais passe en tête ; le peloton passe avec une minute et trente-huit secondes de retard. A trente-trois kilomètres de l'arrivée, Christophen Juul Jensen récidive, suivi par le Belge Dries de Bondt (Alpecin-Fenix) et l'Italien Lorenzo Rota (Intermarché-Wanty-Gobert Matériaux), qui sont rapidement repris ; à l'avant, De Marchi part en solitaire, il est repris aux vingt derniers kilomètres. A neuf kilomètres de l'arrivée, l'Italien Alessandro Covi (UAE Emirates) tente, à son tour, de partir en solitaire, mais il est repris au bout de quelques centaines de mètres par un peloton disloqué par le rythme infernal imposé. Au sommet de Monsano, l'Italien Domenico Pozzovivo (Intermarché-Wanty-Gobert Matériaux) passe en tête devant le Français Romain Bardet (DSM).
Les équipes Intermarché-Wanty-Gobert Matériaux, de l'Erythréen Biniam Girmay, et Alpecin-Fenix, du Néerlandais Mathieu van der Poel, sont les deux seules formations à profiter de ce final indécis ; alors que les sprinteurs les plus massifs, comme l'Australien Caleb Ewan (Lotto-Soudal), le Britannique Mark Cavendish (Quick-Step Alpha Vinyl) et le Français Arnaud Démare (Groupama FDJ) ne sont pas en mesure de disputer la victoire d'étape. Loin d'être avare d'effort, van der Poel participe lui-même à distancer ces principaux rivaux. La victoire d'étape se résume en un duel entre le Néerlandais et l'Erythréen : Girmay lance le sprint, van der Poel, dans sa roue, ne parvient pas à le dépasser.
L'Espagnol Juan Pedro López (Trek-Segafredo) conserve son maillot rose et son maillot blanc ; l'Italien Diego Rosa (Eolo-Kometa) garde son maillot bleu ; Arnaud Démare reste premier au classement cyclamen ; tout comme l'équipe Bora-Hansgrohe au classement par équipes.