Après 1979 mètres de dénivelé positif, six ascensions et 165,1 kilomètres autour de Valbraye, le Néo-Zélandais Patrick Bevin s'est imposé au sprint devant le Britannique Ethan Hayter (INEOS Grenadiers) et le leader du général, l'Australien Rohan Dennis (Jumbo-Visma). Quinten Hermans (Intermarché Wanty Gobert) a pris la 5e place. Un trio de fuyards a longtemps animé la journée mais les Français Nans Peters (AG2R La Mondiale) et Rémi Cavagna (Quick-Step Alpha Vinyl), accompagnés du Letton Krists Neilands (Israel Premier Tech), ont finalement dû s'avouer vaincus à 19 bornes du but, dans les pentes de l'avant-dernière difficulté de la journée.

Malgré une ultime tentative de l'Estonien Rein Taaramäe (Intermarché Wanty Gobert), c'est un groupe d'une trentaine d'unités qui s'est présenté dans les derniers hectomètres. Plus véloce que ses concurrents, Bevin, 31 ans, a décroché sa 9e victoire chez les professionnels, la 3e cette saison après avoir récemment enlevé une étape et le général du Tour de Turquie.

Rohan Dennis a conservé le maillot de leader qu'il porte depuis mercredi. Au général, il compte 14 secondes d'avance sur Bevin et 18 secondes sur l'Autrichien Felix Grosschartner (BORA-hansgrohe). Dylan Teuns (Bahrain Victorious), le vainqueur de la 1e étape, est 5e à 0:22.

Samedi, la 4e étape offrira un copieux menu au peloton avec pas moins de six ascensions répertoriées, dont cinq de première catégorie. L'arrivée sera jugée à Zinal après une ultime bosse de 3,9 km à 5,2% de déclivité moyenne.

Le 75e Tour de Romandie se terminera dimanche à Vilars. Le Britannique Geraint Thomas (INEOS Grenadiers) l'avait emporté l'an dernier.