Matej Mohoric outsprinted Nico Denz to take victory on stage 10 of the Giro d'Italia as Britain's Simon Yates stayed in the leader's pink jersey.
The pair had broken clear late on a six-hour, 239km stage from Penne to Gualdo Tadino.
Yates now has a 41-second lead over second place, reigning champion Tom Dumoulin moving up after Colombia's Esteban Chaves endured a brutal day.
Team Sky's Chris Froome is now two minutes 30 seconds down on the lead.
Chaves had been in second, a mere 32 seconds down on his Mitchelton-Scott team-mate Yates, after winning on stage six on Mount Etna and staying with Yates until the death on Sunday's steep finish up Gran Sasso d'Italia.
But despite Monday's rest-day the 28-year-old paid heavily for his efforts and lost a huge amount of time on the general classification.
Yates had earlier taken three bonus seconds at an intermediate sprint to extend his lead in the maglia rosa, on a day that had been expected to feature a breakaway and a bunch sprint.
Androni Giocattoli-Sidermec rider Marco Frapporti instead made a solo move and at one stage had a lead of two and a half minutes before a small group bridged across.
As heavy rain threatened, Dumoulin needed the help of team-mate Sam Oomen to get back to the maglia rosa group after going wide on a corner and crashing with 18km to go.
A denuded group of Davide Villella, Denz and Mohoric then built a lead of one minute 12 seconds over the peloton with 12km to go before Villella was dropped as the Slovenian and German broke clear.
Mohoric then held off the challenge of Denz as the pair duelled in the final 300m to take his team Bahrain-Merida's first stage win of this 101st Giro.
Yates finished safely in the peloton as he looks to become the first British winner of the Giro, the race still to take in the climbs of the Alps before it finishes in Rome on Sunday 27 May.
Stage 10 result:
1 Matej Mohoric (Slo/Bahrain-Merida) 6hrs 4mins 52secs
2 Nico Denz (Ger/AG2R La Mondiale) same time
3 Sam Bennett (Irl/Bora-Hansgrohe) +34secs
4 Enrico Battaglin (Ita/LottoNL-Jumbo) same time
5 Davide Ballerini (Ita/Androni Giocattoli-Sidermec)
6 Mads Wurtz Schmidt (Den/Katusha-Alpecin)
7 Francesco Gavazzi (Ita/Androni Giocattoli-Sidermec)
8 Jarlinson Pantano (Col/Trek-Segafredo)
9 Gianluca Brambilla (Ita/Trek-Segafredo)
10 Jose Gonçalves (Por/Katusha-Alpecin)
General classification after stage 10:
1 Simon Yates (GB/Mitchelton-Scott) 43hrs 42mins 38secs
2 Tom Dumoulin (Ned/Team Sunweb) +41secs
3 Thibaut Pinot (Fra/Groupama-FDJ) +46secs
4 Domenico Pozzovivo (Ita/Bahrain-Merida) +1min
5 Richard Carapaz (Ecu/Movistar Team) +1min 23secs
6 George Bennett (NZ/LottoNL-Jumbo) +1min 36secs
7 Rohan Dennis (Aus/BMC Racing Team) +2mins 8secs
8 Pello Bilbao (Spa/Astana Pro Team) same time
9 Michael Woods (Can/EF Education First-Drapac p/b Cannondale) +2mins 28secs
10 Chris Froome (GB/Team Sky) +2mins 30secs