Italy’s Alberto Dainese sprinted to victory on stage 17 at the Giro d’Italia as Britain’s Geraint Thomas retained the overall race lead.
Team DSM rider Dainese edged compatriot Jonathan Milan and Australian Michael Matthews in a photo finish in Caorle.
Ineos Grenadiers’ Thomas finished safely in the peloton to defend the pink jersey he reclaimed on Tuesday.
He remains 18 seconds ahead of stage 16 winner Joao Almeida and 29 seconds clear of Jumbo Visma’s Primoz Roglic.
The general classification battle takes centre stage once again from Thursday, when Thomas will turn 37, with two challenging days in the mountains preceding Saturday’s individual time trial on the penultimate stage.
The 161km 18th stage from Oderzo to Val Di Zoldo includes 3,700m of elevation, with the two categorised climbs inside the final 15km featuring a steepest gradient of nearly 20% – before eight consecutive switchbacks lead into the home straight.
The overall race contenders were able to conserve energy in Wednesday’s flat 195km route from Pergine Valsugana, which saw Dainese time his final push to perfection – although he had a tense wait for his marginal victory to confirmed.
The Italian was the very last rider to finish stage 15 as he struggled with illness last week – with 48 riders abandoning the race following two weeks marred by appalling weather.
“Today we rode an insane final,” Dainese said. “The last metres I was digging so deep, I was really on the limit and I saw Jonathan Milan coming.”
He added: “I’ve been quite sick with stomach issues and my breathing the last few days. Today was the first day I was feeling OK, so to win like this after such a struggle is insane and I’m super happy.”
Race leader Thomas said: “The day was nothing like what we had experienced before. It was nice and warm at the end, which is good. It was perfect to keep our strength up before the three days ahead of us.”
1. Geraint Thomas (GB/Ineos Grenadiers) 71hrs 58mins 43sec
2. Joao Almeida (Por/UAE Team Emirates) +18secs
3. Primoz Roglic (Slo/Jumbo-Visma) +29secs
4. Damiano Caruso (Ita/Bahrain Victorious) +2mins 50secs
5. Eddie Dunbar (Ire/Team Jayco AIula) +3mins 03secs
6. Lennard Kamna (Ger/Bora-Hansgrohe) +3mins 20secs
7. Bruno Armirail (Fra/Groupama-FDJ) +3mins 22secs
8. Andreas Leknessund (Nor/Team DSM) +3mins 30secs
9. Thymen Arensman (Ned/Ineos Grenadiers) +4mins 09secs
10. Laurens De Plus (Bel/Ineos Grenadiers) +4mins 32secs