Italy's Damiano Cima produced a brilliant ride to win stage 18 of the Giro d'Italia after being involved in a long-range three-man breakaway.
The Nippo-Vini Fantini-Faizane rider, 25, edged out German Pascal Ackermann and fellow Italian Simone Consonni at the finish in Santa Maria di Sala.
Richard Carapaz finished safely in the peloton to retain the overall lead.
Britain's Simon Yates also finished 49th in the main group.
The breakaway wins again
With the 222km stretch from Valdaora to Santa Maria di Sala largely made up of descents, it was supposed to be a day for the sprinters.
However, the expected bunch sprint finish did not materialise as the peloton left it too late to reel in Cima and fellow breakaway riders Nico Denz and and Mirco Maestri.
The trio who established a gap of four minutes and 30 seconds at one stage, hit the front with 170km to go.
And while Denz and Maestri faded as the peloton bridged the gap in the final 200m, Cima - in his second year as a professional - had the strength to stay clear of Ackermann.
The Bora-Hansgrohe rider did have the consolation though of reclaiming the points jersey from French rider Arnaud Demare.
"The team showed we are still fighting for the jersey," said Ackermann, who punched his handlebars in frustration at the finish.
"We didn't get the breakaway back but we got the jersey back and that was the goal. I was thinking: I have lost everything today. We didn't expect it."
Stage 18 results
1. Damiano Cima (Ita/Nippo-Vini Fantini-Faizane) 4hrs 56mins 04secs
2. Pascal Ackermann (Ger/Bora-Hansgrohe) Same time
3. Simone Consonni (Ita/UAE-Team Emirates)
4. Florian Senechal (Fra/Deceuninck-Quick Step)
5. Ryan Gibbons (SA/Dimension-Data)
6. Manuel Belletti (Ita/Androni Giocattoli-Sidermec)
7. Davide Cimolai (Ita/Israel Cycling Academy)
8. Arnaud Demare (Fra/Groupama-FDJ)
9. Sean Bennett (US/EF Education First)
10. Mirco Maestri (Ita/Bardiani - CSF)
General classification after stage 18
1. Richard Carapaz (Ecu/Movistar) 79hrs 44mins 22secs
2. Vincenzo Nibali (Ita/Bahrain-Merida) +1min 54secs
3. Primoz Roglic (Slo/Jumbo-Visma) +2mins 16secs
4. Mikel Landa (Spa/Movistar) +3mins 03secs
5. Bauke Mollema (Ned/Trek-Segafredo) +5mins 07secs
6. Miguel Angel Lopez (Col/Astana) +6mins 17secs
7. Rafal Majka (Pol/Bora-Hansgrohe) +6mins 48secs
8. Simon Yates (GB/Mitchelton-Scott) +7mins 13secs
9. Pavel Sivakov (Rus/Ineos) +8mins 21secs
10. Davide Formolo (Ita/Bora-Hansgrohe) +8mins 59secs