Italy's Dario Cataldo claimed his first Giro d'Italia stage win as Richard Carapaz stretched his lead over Primoz Roglic in the overall standings.
Cataldo, 34, edged Mattia Cattaneo in a sprint finish to stage 15 while British riders Simon Yates and Hugh Carthy crossed third and fourth in Como.
Roglic lost 40 seconds having had to change to a team-mate's bike before crashing on the final descent.
Yates, 26, rose from ninth to eighth in the overall standings.
Cataldo and compatriot Cattaneo broke away early in the 232km stage, leading by over 15 minutes at one stage, before Cataldo claimed his first Giro stage win in his ninth year racing in his home race.
"It's amazing," said the Astana rider. "It's something I've been dreaming of all my life.
"I was not thinking of a breakaway because I'd had two difficult days. I was thinking I just have to get to the finish line, but at the beginning my legs were OK so I tried to stay with Cattaneo.
"My legs were still going well and at the end I was confident. I knew they (the chasing group) were 30 seconds behind at the end of the downhill so I had to keep going with the pace and it was an amazing finish."
A mechanical problem meant Roglic had to switch to Jumbo-Visma team-mate Antwan Tolheok's bike and fellow race favourite Vincenzo Nibali took advantage to attack during the final climb to the Civiglio.
The two-time Giro winner pulled away from Roglic and the Slovenian crashed on the descent as he tried to close the gap, but Richard Carapaz stayed with Nibali to establish himself as a strong contender.
Yates attacked three times in the stage from Ivrea and caught Nibali and Carapaz to edge up the standings again after losing considerable ground in last Sunday's individual time trial.
Tuesday's 16th stage features the gruelling ascent of the Mortirolo pass, although the climb up the Gavia pass has been cancelled because of avalanche risks.
Stage 15 results
1. Dario Cataldo (Ita/Astana) 5hrs 48mins 15secs
2. Mattia Cattaneo (Ita/Androni Giocattoli-Sidermec) Same time
3. Simon Yates (Gbr/Mitchelton-Scott) +11secs
4. Hugh Carthy (Gbr/EF Education First) Same time
5. Richard Carapaz (Ecu/Movistar)
6. Vincenzo Nibali (Ita/Bahrain-Merida)
7. Miguel Angel Lopez (Col/Astana) +36secs
8. Rafal Majka (Pol/Bora-Hansgrohe) Same time
9. Domenico Pozzovivo (Ita/Bahrain-Merida)
10. Mikel Landa (Spa/Movistar)
General classification after stage 15
1. Richard Carapaz (Ecu/Movistar) 64hrs 24mins 0secs
2. Primoz Roglic (Slo/Jumbo-Visma) +47secs
3. Vincenzo Nibali (Ita/Bahrain-Merida) +1min 47secs
4. Rafal Majka (Pol/Bora-Hansgrohe) +2mins 35secs
5. Mikel Landa (Spa/Movistar) +3mins 15secs
6. Bauke Mollema (Ned/Trek-Segafredo) +3mins 38secs
7. Jan Polanc (Slo/UAE Emirates) +4mins 12secs
8. Simon Yates (Gbr/Mitchelton-Scott) +5mins 24secs
9. Pavel Sivakov (Rus/Ineos) +5mins 48secs
10. Miguel Angel Lopez (Col/Astana) +5mins 55secs