Luxembourg's Bob Jungels won his first Grand Tour stage in a sprint between the overall classification contenders on stage 15 of the Giro d'Italia.
Jungels, 24, powered through a select group that broke clear on the final climb of the 199km stage to Bergamo.
Dutchman Tom Dumoulin retains the overall lead, but lost time to Colombia's Nairo Quintana, who finished second to claim six bonus seconds.
France's Thibaut Pinot finished third, with Britain's Adam Yates in fourth.
Orica rider Yates is up to 11th overall, with Astana rider Tanel Kangert - seventh at the start of the day - forced to abandon after crashing into a traffic island and breaking his elbow.
Quick-Step Floors' Jungels attacked with 4km to go as the breakaway was caught, with defending champion Vincenzo Nibali (Bahrain-Merida) responding before all the favourites joined together for the descent into Bergamo.
Jungels upped the pace again inside the final kilometre and ultimately had too much power for a group mainly containing specialist climbers, as Quintana (Movistar) took a surprise second to cut the gap to Dumoulin (Sunweb) to two minutes 41 seconds.
The peloton has a rest day on Monday before a final week that features the toughest climbs of this year's 100th edition of the race.
Stage 15 result
1. Bob Jungels (Lux/Quick-Step) 4hrs 16mins 51secs
2. Nairo Quintana (Col/Movistar) Same time
3. Thibaut Pinot (Fra/FDJ) Same time
4. Adam Yates (GB/Orica) Same time
5. Domenico Pozzovivo (Ita/AG2R) Same time
6. Patrick Konrad (Aut/Bora) Same time
7. Vincenzo Nibali (Ita/Bahrain) Same time
8. Tom Dumoulin (Ned/Sunweb) Same time
9. Ilnur Zakarin (Rus/Katusha) Same time
10. Bauke Mollema (Ned/Trek) Same time
Overall classification after stage 15
1. Tom Dumoulin (Ned/Sunweb) 63hrs 48mins 08secs
2. Nairo Quintana (Col/Movistar) +2mins 41secs
3. Thibaut Pinot (Fra/FDJ) +3mins 21secs
4. Vincenzo Nibali (Ita/Bahrain) +3mins 40secs
5. Ilnur Zakarin (Rus/Katusha) +4mins 24secs
6. Bauke Mollema (Ned/Trek) +4mins 32secs
7. Domenico Pozzovivo (Ita/AG2R) +4mins 59secs
8. Bob Jungels (Lux/Quick-Step) +5mins 18secs
9. Andrey Amador (Crc/Movistar) +6mins 01secs
10. Steven Kruijswijk (Ned/Lotto NL-Jumbo) +7mins 03secs
11. Adam Yates (GB/Orica) +7mins 43secs