Italian Valerio Conti retained the lead at the Giro d’Italia as Spain’s Pello Bilbao claimed the seventh stage.
Astana’s Bilbao attacked from a small group of breakaway riders 1.5km from the finish on the punchy final climb.
He held off France’s Tony Gallopin and Italian Davide Formolo.
Conti, who took the lead on an eventful stage six, is one minute 32 seconds clear of new second-placed rider Jose Joaquin Rojas, while Britain’s Simon Yates slipped two places to 15th.
Yates remains five minutes 59 seconds off the pace though as, for the second day in succession, the overall favourites had an uneventful day in the peloton, choosing to keep their powder dry for the harder tests to come.
Slovenian Primoz Roglic, who was usurped at the top on Thursday, lost one of his domestiques for the mountain stages when Laurens de Plus of Belgium abandoned the race having been ill for several days.
Saturday’s eighth stage is a 235km ride from Tortoreto Lido to Pesaro ahead of a key time trial on Sunday.
Stage seven result
1. Pello Bilbao (Spa/Astana) 4hrs 06mins 28secs
2. Tony Gallopin (Fr/AG2R La Mondiale) +5
3. Davide Formolo (It/Bora-Hansgrohe) Same time
4. Lucas Hamilton (Aus/Mitchelton-Scott) +9
5. Mattia Cattaneo (It/Androni Giocattoli-Sidermec) Same time
6. Jose Joaquín Rojas (Sp/Movistar) +30
7. Sebastian Henao (Col/Team INEOS) +48
8. Antonio Pedrero (Spa/Movistar) +1:01
9. Valentin Madouas (Fr/Groupama-FDJ) +1:07
10. Andrea Vendrame (It/Androni Giocattoli-Sidermec) Same time
General classification after stage seven
1. Valerio Conti (It/UAE Team Emirates) 29hrs 29mins 34secs
2. Jose Joaquin Rojas (Sp/Movistar) +1:32
3. Giovanni Carboni (It/Bardiani-CSF) +1:41
4. Nans Peters (Fr/AG2R La Mondiale) +2:09
5. Valentin Madouas (Fr/Groupama-FDJ) +2:17
6. Amaro Antunes (Por/CCC Team) +2:45
7. Fausto Masnada (It/Androni Giocattoli-Sidermec) +3:14
8. Pieter Serry (Bel/Deceuninck-Quick-Step) +3:25
9. Andrey Amador (CR/Movistar) +3:27
10. Sam Oomen (Ned/Team Sunweb) +4:57
15. Simon Yates (GB/Mitchelton-Scott) +5:59
23. Hugh Carthy (GB/EF Education First) +6:40
34. Tao Geoghegan Hart (GB/Team Ineos) +7:43