Cette étape avec un départ à Sierre dans la vallée du Rhône comporte une difficulté majeure en début de parcours, le col du Simplon franchi après 55 kilomètres de course. Ensuite, après la descente de ce col et le franchissant de la frontière italo-suisse, le parcours relativement plat emprunte les rives du lac Majeur en traversant la ville de Stresa. Les vingt derniers kilomètres sont assez techniques. Cette étape devrait convenir aux sprinteurs qui ont réussi à s'accrocher lors de l'ascension du Simplon. L'arrivée a lieu à Cassano Magnago.
Courue sous la pluie à partir de la montée du col du Simplon franchi en tête par Davide Bais qui récupère son maillot bleu de meilleur grimpeur, l'étape est marquée par une importante échappée finalement constituée de 29 unités. Les écarts avec le peloton maillot rose ne font que croître tout au long de l'étape pour devenir très importants à l'arrivée. À une soixantaine de kilomètres de l'arrivée, les attaques commencent à se produire au sein de ce groupe de tête et c'est finalement Laurenz Rex (Intermarché Circus Wanty), parti seul à 57 km du terme, qui déclenche les hostilités. Il est rejoint quatre kilomètres plus loin par Davide Ballerini (Soudal Quick-Step) et Stefano Oldani (Alpecin Deceuninck) et encore sept kilomètres plus loin par Toms Skujiņš (Trek Segafredo). Le quatuor ainsi formé fait la course en tête pendant de nombreux kilomètres mais perd Laurenz Rex à 10 km du but. Ballerini, Oldani et Skujiņš résistent aux poursuivants mais sont toutefois rattrapés aux 500 mètres par un groupe de cinq contre attaquants parmi lesquels s'impose sur le fil Nico Denz (Bora Hansgrohe), déjà vainqueur deux jours plus tôt. Le peloton maillot rose se pointe à plus de 21 minutes du vainqueur. Bruno Armirail (Groupama FDJ), membre de l'échappée matinale et 15e de l'étape à 53 secondes du vainqueur, s'empare du maillot rose au détriment de Geraint Thomas.