L'Américain Robin Carpenter (Rally UHC Cycling), l'Allemand Simon Geschke (CCC Team), le Suisse Gian Friesecke (sélection nationale) et le Néerlandais Taco Van Der Hoorn (Team Jumbo-Visma) sont sortis du peloton après une dizaine de kilomètres. Ils ont compté un peu moins de trois minutes d'avance. A une trentaine de kilomètres de l'arrivée, le Britannique Geraint Thomas (Ineos), vainqueur du dernier Tour de France, était victime d'une chute. Resté au sol plusieurs minutes, Thomas abandonnait. Friesecke, dernier rescapé de l'échappée, était repris à 8 km de la ligne. Malgré une tentative de Matej Mohoric (Bahrain-Merida), le sprint massif était inévitable. Viviani s'y montrait le plus rapide devant Matthews et Sagan. Trois Belges figurent dans le top-10: Jasper Stuyven (Trek-Segafredo) est cinquième, juste devant Sep Vanmarcke (Education First). Stan Dewulf (Lotto Soudal) se classe neuvième. Greg Van Avermaet (CCC) pointe en onzième position. Viviani, 30 ans, décroche la 72e victoire de sa carrière. Il s'agit de son cinquième succès de la saison, mais le sprinteur n'avait plus levé les bras au ciel depuis le 15 mars lors de la troisième étape de Tirreno-Adriatico. Au général, Sagan possède 10 secondes d'avance sur Matthews et 15 sur le Danois Kasper Asgreen (Deceuninck-Quick Step). Mercredi, la 5e étape sera courue entre Münchenstein et Einsiedeln (177 km). De nombreuses petites côtés vont pimenter le parcours. Le Sattel (2e catégorie, 13,1 km à 3,6%) et la montée d'Einsiedeln (3e catégorie, 1,2 km à 5,8%) animeront les 50 derniers kilomètres de course. (Belga)