Vincenzo Nibali (Bahrain-Merida), Zakarin, Yates and Landa followed the Dutchman, and the gap to Quintana soon came down until Dumoulin caught and passed him.
Quintana, Zakarin and Landa initially got back on to his wheel, but Dumoulin’s steady rhythm eventually saw the Colombian lose contact.
Zakarin attacked just 200m shy of the summit, but Dumoulin responded well again to catch the Russian, and storm to his second stage win of this year’s race.
Giro d’Italia 2017: stage 14 – result
1) Tom Dumoulin (NED) – Team Sunweb – 3.02.34hrs
2) Ilnur Zakarin (RUS) – Katusha-Alpecin +3”
3) Mikel Landa (ESP) – Team Sky +9”
4) Nairo Quintana (COL) – Movistar +14”
5) Thibaut Pinot (FRA) – FDJ +35”
6) Adam Yates (GBR) – Orica-Scott +41”
7) Vincenzo Nibali (ITA) – Bahrain-Merida +43”
8) Franco Pellizotti (ITA) – Bahrain-Merida – ST
9) Steven Kruijswijk (NED) – LottoNL-Jumbo +46”
10) Tanel Kangert (EST) – Astana – ST
General classification
1) Tom Dumoulin (NED) – Team Sunweb – 59.31.17hrs
2) Nairo Quintana (COL) – Movistar +2.47
3) Thibaut Pinot (FRA) – FDJ +3.25
4) Vincenzo Nibali (ITA) – Bahrain-Merida +3.40
5) Ilnur Zakarin (RUS) – Katusha-Alpecin +4.24
6) Bauke Mollema (NED) – Trek-Segafredo +4.32
7) Tanel Kangert (EST) – Astana +4.55
8) Domenico Pozzovivo (ITA) – Ag2r-La Mondiale +4.59
9) Bob Jungels (LUX) – QuickStep Floors +5.28
10) Andrey Amador (CRC) – Movistar +5.36
Selected others
13) Adam Yates (GBR) – Orica-Scott +7.43