Imola - Ireland's Sam Bennett of the Bora team won the 12th stage of the Giro d'Italia for his second win of this year's race in wet and slippy conditions on Thursday.
Britain's Simon Yates of Mitchelton-Scott holds the overall leader's pink jersey, which he claimed a week ago, ahead of reigning champion Tom Dumoulin at 47sec, with Frenchman Thibaut Pinot third at 1min 04sec.
"I guess these were favourable weather conditions for an Englishman. And also for an Irishman," said Yates.
"It was a very difficult final. I think a few guys underestimated it, myself included."
Four-time Tour de France winner Chris Froome is stuck down in a disappointing 12th place, more than three minutes off his compatriot's pace.
Bennett, winner of the seventh stage last Friday at Praia Mare, broke away in the final 400 metres at the end of the 214km flat and twisty stage that finished on the Imola motor racing circuit.
Dutch rider Danny Van Poppel and Italian Niccolo Bonifazio finished second and third respectively after being taken off guard by a late surge by the 27-year-old Irishman.
"It was a tough final for a bunch sprint. There were two guys up front. I didn't know how much energy they had left so I went early because I didn't want to let the stage get away from me," said Bennett.
"I just went for it. I didn't know if I would hold the lead. I think it's a nicer win than the first one."
Slovenian Matej Mohoric, impressive in the descent following the final climb, and Colombian Carlos Betancur made a break but were reeled in with 500 metres to go.
The early five-man breakaway with riders from three Italian teams - Marco Frapporti, Jacopo Mosca, Eugert Zhupa, Mirco Maestri and Manuel Senni - were also caught by the peloton 20km from the line.
Belgian Tim Wellens pushed ahead under the driving rain but his 20-second lead slipped away on the final climb.
Bennett is the third rider to take two stages in this year's race after Yates and Italian sprinter Elia Viviani.
The Italian, who leads the sprinters' points competition, was caught out by a change in pace and weather in the final 15km and found himself distanced by the peloton.
Bennett's victory slashed Viviani's lead in the cyclamen jersey competition to just 22 points.
Friday's 13th stage should suit the sprinters again over a mostly flat 180km between Ferrare and Nervesa della Battaglia, on the eve of the gruelling mountain stage finish at Monte Zoncolan.
Results from the 12th stage of the Giro d'Italia over 214km from Osimo to Imola on Thursday:
1. Sam Bennett (IRL/BOR) 4hr 49min 34sec, 2. Danny Van Poppel (NED/LNL) s.t, 3. Niccolo Bonifazio (ITA/BAH) s.t, 4. Baptiste Planckaert (BEL/KAT) s.t., 5. Jurgen Roelandts (BEL/BMC) s.t, 6. Michael Morkov (DEN/QST) s.t., 7. Manuel Belletti (ITA/ANS) s.t., 8. Clement Venturini (FRA/ALM) s.t., 9. Florian Senechal (FRA/QST) s.t., 10. Enrico Battaglin (ITA/LNL) s.t.
27. Tom Dumoulin (NED/SUN), s.t., 28. George Bennett (NZL/LNL) s.t., 32. Simon Yates (GBR/MIT) s.t., 37. Chris Froome (GBR/SKY) s.t., 38. Thibaut Pinot (FRA/FDJ) s.t.
1. Simon Yates (GBR/Mitchelton) 51hr 57min 55sec, 2. Tom Dumoulin (NED/SUN) at 47sec, 3. Thibaut Pinot (FRA/FDJ) 1:04, 4. Domenico Pozzovivo (ITA/BAH) 1:18, 5. Richard Carapaz (ECU/MOV) 1:56, 6. George Bennett (NZL/LNL) 2:09, 7. Rohan Dennis (AUS/BMC) 2:36, 8. Pello Bilbao (ESP/AST) 2:54, 9. Patrick Konrad (AUT/BOR) 2:55, 10. Fabio Aru (ITA/EAU) 3:10, 11. Miguel Angel Lopez (COL/AST) 3:17, 12. Chris Froome (GBR/SKY) 3:20