Ireland’s Dan Martin won his first ever stage of the Giro d’Italia as Britain’s Simon Yates reduced the gap to overall leader Egan Bernal on stage 17.
Bernal cracked for the first time and lost nearly a minute to Yates, who is up to third in the overall standings.
Colombian Bernal also lost three seconds to second-placed Damiano Caruso and leads by two minutes 21 seconds.
Israel Start-Up Nation’s Martin rode solo up the 10km final climb, leaving his breakaway companions behind.
Yates, of Team BikeExchange, began the day fifth in the general classification but his late attack means he trails Bernal by 3:23 with four stages remaining.
Bernal, who had extended his overall advantage with an impressive victory on stage 16 prior to Tuesday’s rest day, suffered from a lingering back problem which badly affected his form last year.
But he insisted Yates was simply better on the day.
“Today was a tough day for me for sure,” Bernal said. “The last kilometres were really steep. I tried to follow Yates but today he was stronger than me. I just tried to arrive with Caruso who is closest in the GC – I don’t want to take any risks.
“For sure Yates was very impressive and I just did my best. I’m happy because I didn’t lose too much time.”
Briton Hugh Carthy began Wednesday’s mountainous stage to Sega di Ala third overall – but the EF Education-Nippo rider is now fifth, 2:46 behind compatriot Yates in the final podium place.
Birmingham-born Martin, 34, finished 13 seconds clear of Deceuninck Quick-Step’s Almeida to add a first stage victory at the Giro to his previous wins at the Tour de France and Vuelta a Espana.
Italy’s Giulio Ciccone dropped from sixth to 10th after being involved in a crash that also included Belgium’s Remco Evenepoel, 21, fading following his strenuous efforts to re-join the main group.
Thursday’s 18th stage is a relatively flat 231km route from Rovereto to Stradella.
Stage 17 results
1. Daniel Martin (Irl/Israel Start-Up Nation) 4hrs 54mins 38secs
2. Joao Almeida (Por/Deceuninck-Quick-Step) +13secs
3. Simon Yates (GB/Team BikeExchange) +30secs
4. Diego Ulissi (Ita/UAE Team Emirates) +1 min 20secs
5. Damiano Caruso (Ita/Bahrain Victorious) same time
6. Daniel Martínez (Col/Ineos Grenadiers) +1:23
7. Egan Bernal (Col/Ineos Grenadiers) same time
8. Antonio Pedrero (Spa/Movistar) +1:38
9. Pello Bilbao (Spa/Bahrain Victorious) +1:43
10. George Bennett (NZ/Jumbo-Visma) +2:21
1. Egan Bernal (Col/Ineos Grenadiers) 71hrs 32mins 05secs
2. Damiano Caruso (Ita/Bahrain Victorious) +2mins 21secs
3. Simon Yates (GB/Team BikeExchange) +3:23
4. Aleksandr Vlasov (Rus/Astana-Premier Tech) +6:03
5. Hugh Carthy (GB/EF Education-Nippo) +6:09
6. Romain Bardet (Fra/Team DSM) +6:31
7. Daniel Martinez (Col/Ineos Grenadiers) +7:17
8. Joao Almeida (Por/Deceuninck-Quick-Step) +8:45
9. Tobias Foss (Nor/Jumbo-Visma) +9:18
10. Giulio Ciccone (Ita/Trek-Segafredo) +11:06