Le peloton, composé de 156 coureurs, passe le km 0 à 11 h 39. James Knox, Roger Kluge et Giacomo Nizzolo sont non-partants. Une échappée de 27 coureurs se forme dont font partie Andrey Amador, Héctor Carretero, José Joaquín Rojas, Tony Gallopin, Alexis Vuillermoz, Ion Izagirre, Domenico Pozzovivo, Davide Formolo, Thomas De Gendt, Mikel Nieve, Ilnur Zakarin, Bauke Mollema et Giulio Ciccone. Dans la descente du Colle del Lys, Tao Geoghegan Hart chute et abandonne.
Dans le Plan del Lupo, le groupe d'échappés se réduit fortement alors que dans le peloton les Astana passent à l'offensive. Le porteur du maillot rose est distancé et Giulio Ciccone passe en tête au sommet. Mais le groupe d'échappés ne compte plus qu'une minute d'avance sur le peloton de 11 coureurs et le maillot rose revient à l'avant. Fausto Masnada est le premier à attaquer à 30 kilomètres de l'arrivée, suivi par 4 coureurs. Dans le groupe du maillot rose, l'équipe Movistar prend le relais d'Astana et l'écart remonte.
Au pied de la montée finale, les échappés ont 35 secondes sur les poursuivants et 2 minutes 30 sur le groupe maillot rose. Les poursuivants réussissent à rentrer rapidement sur les échappés. Dans le groupe des favoris, Damiano Caruso roule pour Bahrain-Merida alors que Bob Jungels et Hugh Carthy sont lâchés. Ils ne sont plus que quatre devant : Bauke Mollema, Giulio Ciccone, Ilnur Zakarin et Mikel Nieve. Dans le groupe des favoris, Mikel Landa attaque alors que Simon Yates et Jan Polanc sont en difficulté. Landa est aidé par ses coéquipiers Andrey Amador et Héctor Carretero. Le Colombien Miguel Ángel López est victime d'un problème mécanique, change de vélo et se retrouve avec Yates. Mikel Landa est désormais seul à la poursuite du quatuor de tête qui devient un trio puisque Mollema est lâché. Dans le groupe des favoris, Domenico Pozzovivo et Davide Formolo ayant terminé de travailler pour les leaders, c'est Vincenzo Nibali qui accélère le rythme, suivi par Rafał Majka, Richard Carapaz et Pavel Sivakov alors que Primož Roglič et Vincenzo Nibali se marquent. En tête de course, Ilnur Zakarin remporte la victoire après avoir lâché Mikel Nieve. Landa passe la ligne en troisième position à 1 minute 19. Primož Roglič et Vincenzo Nibali passent la ligne à 2 minutes 57, Simon Yates et Miguel Ángel López terminent un peu plus loin. Jan Polanc perd du temps mais conserve son maillot rose, Giulio Ciccone reprend la première place du classement de la montagne et Pavel Sivakov prend le maillot blanc du meilleur jeune.