Britain’s Simon Yates retained his lead at the Giro d’Italia after a wet sprint finish on stage 17 in Iseo.
Italy’s Elia Viviani took his fourth stage victory of the 2018 tour from Ireland’s Sam Bennett in a chaotic final push as the rain lashed down.
Yates had begun the day with a 56-second lead over reigning champion Tom Dumoulin after Tuesday’s time trial.
And the 25-year-old finished the 155km course from Riva da Garda safely in the main pack to maintain his title bid.
Yates is bidding to become the first ever Briton to win the Giro, with three mountain stages to come on Thursday, Friday and Saturday before the race finishes in Rome on Sunday.
He finished in 28th place behind Dumoulin of the Netherlands and four-time Tour de France winner Chris Froome.
Team Sky’s Froome is in fourth place, behind Italian Domenico Pozzovivo of Bahrain-Merida, who is three minutes and 11 seconds down on Yates.
There were two casualties before the race began on Wednesday as South Africa’s Louis Meintjes pulled out with a respiratory infection and Belgian Victor Campenaerts also withdrew.
And on a turbulent stage from Riva del Garda with constant attacks, Yates managed to keep out of trouble as Viviani recovered from a mechanical problem to prove his class in the final sprint.
The win for Viviani effectively wraps up the points classification, with three mountain stages to come and a final sprint in Rome on Sunday.
Stage 16 results:
1. Elia Viviani (Ita/Quick-Step Floors) 3hr 19mins 57secs
2. Sam Bennett (/Katusha-Alpecin) same time
3. Niccolo Bonifazio (Ita/Bahrain-Merida) same time
4. Danny van Poppel (Ned/LottoNL-Jumbo) same time
5. Jens Debusschere (Ger/Lotto Soudal) same time
6. Kristian Sbaragli (Ita/Israel Cycling Academy) same time
7. Jean-Pierre Drucker (Lux/BMC Racing) same time
8. Sacha Modolo (Ita/EF Education First-Drapac p/b Cannondale) same time
9. Andrea Vendrame (Ita/Androni-Sidermec-Bottecchia) same time
10. Jose Goncalves (Por/Katusha Alpecin) same time
1. Simon Yates (GB/Mitchelton-Scott) 69hrs 59mins 11secs
2. Tom Dumoulin (Ned/Team Sunweb) +56secs
3. Domenico Pozzovivo (Ita/Bahrain-Merida) +3mins 11secs
4. Chris Froome (GB/Team Sky) +3mins 50secs
5. Thibaut Pinot (Fra/Groupama-FDJ) +4mins 19secs
6. Rohan Dennis (Aus/BMC Racing Team) +5mins 04secs
7. Miguel Angel Lopez (Col/Astana Pro Team) +5mins 37secs
8. Pello Bilbao (Spa/Astana Pro Team) +6mins 02secs
9. Richard Carapaz (Ecu/Movistar Team) +6mins 07secs
10. George Bennett (NZ/LottoNL-Jumbo) +7mins 01secs