Viviani a devancé l'Irlandais Sam Bennett, déjà vainqueur de deux étapes, et l'Italien Niccolo Bonifazio. Le champion olympique de l'omnium s'était déjà imposé à deux reprises en Israël puis à Nervesa della Battaglia.
Cette étape, très animée au long des 155 kilomètres, a donné lieu à des relances incessantes. Les derniers rescapés de la principale échappée, l'Italien Alessandro De Marchi et l'Espagnol Luis Leon Sanchez, ont été repris sur le circuit final, avant les dix derniers kilomètres. Le Sud-Africain Louis Meintjes, qui souffre d'un début d'infection des voies respiratoires, et le Belge Victor Campenaerts n'ont pas pris le départ de Riva del Garda.
ats/bond
Giro, 17e étape (23.05)
Riva del Garda - Iseo (155 km)
1. Elia Viviani ITA 3h19'57"
2. Sam Bennett IRL + 0"
3. Niccolo Bonifazio ITA 0"
4. Danny van Poppel NED 0"
5. Jens Debusschere BEL 0"
6. Kristian Sbaragli ITA 0"
7. Jempy Drucker LUX 0"
8. Sacha Modolo ITA 0"
9. Andrea Vendrame ITA 0"
10. José Goncalves POR 0"
70. Kilian Frankiny SUI 0"
76. Sébastien Reichenbach SUI 0"
98. Steve Morabito SUI 3'42"
Giro, classement général (23.05)
1. Simon Yates GBR 69h59'11"
2. Tom Dumoulin NED + 0'56"
3. Domenico Pozzovivo ITA 3'11"
4. Chris Froome GBR 3'50"
5. Thibaut Pinot FRA 4'19"
24. Sébast.ien Reichenbach SUI 32'20"
66. Kilian Frankiny SUI 1:51'35"
86. Steve Morabito SUI 2:24'30"