Czech rider Jan Hirt claimed a first Grand Tour win with victory over a tough mountain stage as Richard Carapaz saw his overall lead of the Giro d'Italia cut to just three seconds.
The 202km stage 16 from Sala to Aprica had three category one climbs and was seen as one of the toughest stages.
Hirt finished seven seconds clear of Team DSM's Thymen Arensman.
"I've had a few problems during the stage. My chain dropped, I cramped, but I never gave up," said Hirt.
"I'm glad I managed to go solo. I always said that my biggest achievement would be to win a stage at the Giro d'Italia and I could stop after that, but I won't stop now."
Hirt, from the Intermarche-Wanty-Gobert Materiaux team, had been part of the main breakaway group, before attacking on the final ride up the Valico di Santa Cristina.
Australian Jai Hindley - who had come into the stage seven seconds behind in the overall standings - brought the rest of the chasing group home, with Ineos Grenadiers rider Carapaz among them.
Hindley's third place saw the Bora-Hansgrohe rider pick up crucial bonus seconds which moved him closer behind Ecuador's Carapaz in the battle for the maglia rosa leaders' jersey.
However, Joao Almeida (UAE Team Emirates) now sits 44 seconds behind having been unable to respond on the final climb, which saw him lose time to his general classification rivals.
Carapaz said: "It's been a hard stage and at the end I'm happy. I thought I was going to win the sprint for third place. I eventually didn't, but it's still a good day for me.
"I've lost a few seconds on Hindley, but I gained more on Almeida so the balance is positive."
Stage 17 runs over another 168km of mountain terrain from Ponte di Legno to Lavarone, with the 21-stage race concluding in Verona with a time trial on 29 May.
Stage 16 result
- Jan Hirt (Cze/Intermarche-Wanty-Gobert Materiaux) 5hr 40min 45secs
- Thymen Arensman (Ned/Team DSM) +7secs
- Jai Hindley (Aus/Bora Hansgrohe) +1min 24secs
- Richard Carapaz (Ecu/Ineos Grenadiers) same time
- Alejandro Valverde (Esp/Movistar Team) same time
- Mikel Landa (Esp/Bahrain Victorious) same time
- Lennard Kamna (Ger/Bora Hansgrohe) +1min 38secs
- Joao Almeida (Por/UAE Team Emirates) same time
- Vincenzo Nibali (Ita/Astana - Qazaqstan Team) +2mins 6secs
- Hugh Carthy (GB/EF Education EasyPost +2mins 13secs
- Richard Carapaz (Ecu/Ineos Grendiers) 68hr 49mins 6secs
- Jai Hindley (Aus/Bora Hansgrohe +3secs
- Joao Almeida (Por/UAE Team Emirates) +44secs
- Mikel Landa (Esp/Bahrain Victorious) +59secs
- Vincenzo Nibali (Ita/Astana - Qazaqstan Team) +3mins 40secs
- Domenico Pozzovivo (Ita/Intermarche-Wanty-Gobert Materiaux) +3mins 48secs
- Pello Bilbao (Esp/Bahrain Victorious) +3mins 51secs
- Emanuel Buchmann (Ger/Bora Hansgrohe) +4mins 45secs
- Jan Hirt (Cze/Intermarche Wanty Gobert Materiaux) +7mins 42secs
- Alejandro Valverde (Esp/Movistar Team +9mins 4secs
- Eccentric exercise: Is muscle-lengthening more effective than muscle-contracting?
- The dumbest genre in entertainment?: Delve into the history of reality TV and its effects on our lives