Pascal Ackermann powered his way to a second stage victory at the 2019 Giro d'Italia, while Primoz Roglic retained the pink jersey on a rain-soaked day five.
Bora-Hansgrohe rider Ackermann, making his Grand Tour debut, negotiated surface water to surge past Fernando Gaviria and snatch a dramatic victory on the line by half a wheel.
Frenchman Arnaud Demare (Groupama-FDJ) finished third, while Australian Caleb Ewan (Lotto Soudal) recovered from a puncture with around 30km to go to take fourth place.
Torrential downpours meant general classification times were recorded around 9km from the end of the 140km route from Frascati to Terracina.
There were no changes among the race leaders, with Team Jumbo-Visma rider Roglic finishing safely in the peloton to remain 35 seconds ahead of Britain's Simon Yates (Mitchelton-Scott).
Italian Vincenzo Nibali (Bahrain-Merida) is four seconds behind Yates, while Colombian Miguel Angel Lopez (Astana Pro Team) sits five seconds further back.
Former champion Tom Dumoulin suffered disappointment after being forced to withdraw shortly after the start of the stage having failed to recover from a crash.
The Dutch rider, who won the race in 2017 and was four minutes 30 seconds behind the leaders, injured his knee in a heavy fall on Tuesday, with Team Sunweb tweeting the problem had "proved too painful".
Stage winner Ackermann described the difficult weather conditions as "scary" and said "it was lucky nobody crashed".
The 25-year-old German overcame Gaviria (UAE Team Emirates) with a perfectly-timed sprint after the Colombian kicked early.
"I think this was a two-time sprint for me today because I had to brake in the last 250 metres but then luckily Gaviria was the perfect lead-out man for me and I had a lot of power in the end and I'm just happy about today," Ackermann told Eurosport.
"It was not just the sprint that was really scary, all the stage was scary.
"On the descents you cannot see that much in the peloton because of all the water, and it was lucky nobody crashed."
The three-week race continues on Thursday with a 238km route from Cassino to San Giovanni Rotondo.