Brueil-Cervinia - Britain's Chris Froome closed in on a maiden Giro d'Italia title by defending the leader's pink jersey after the 20th and penultimate stage on Saturday.
Spain's Mikel Nieve, a former team-mate of Froome's at Team Sky, capped a long breakaway with victory at the end of the 214km run from Susa to Cervinia.
Four-time Tour de France winner Froome, 33, now only has to survive the final stage in Rome on Sunday, a 115 km closed circuit race, to win his third successive Grand Tour after his wins in the Tour of Spain and Tour de France.
It would signal a dramatic turnaround in fortunes for the Kenyan-born Briton, who before the start of Friday's 19th stage was over three minutes behind leader Simon Yates (Mitchelton) and looked virtually out of victory contention.
Thanks to an audacious plan concocted by his team, Froome went on the attack 80 km from the finish on the notoriously difficult Colle delle Finestre climb on Friday, leaving a struggling Yates to trail home over half an hour in arrears.
The impressive stage win gave Froome the pink jersey and left his closest rival, defending champion Tom Dumoulin, 40secs in arrears.
With overall victory in sight, Froome gave little to the Dutchman on the 20th stage. Both crossed the finish line together as Nieve handed Mitchelton a consolation stage victory.
Frenchman Thibaut Pinot (Groupama-FDJ), meanwhile, saw his hopes of a podium finish in Rome dashed. He began the stage in third overall, but suffered a spectacular collapse.
Results and standings after Saturday's 20th and penultimate stage of the Giro d'Italia, a 214km run from Susa to Cervinia:
1. Mikel Nieve (ESP/MIT) 5hr 43min 48sec, 2. Robert Gesink (NED/LNL) at 2min 17sec, 3. Felix Grossschartner (AUT/BOR) 2:42, 4. Giulio Ciccone (ITA/BAR) 3:45, 5. Gianluca Brambilla (ITA/TRE) 5:23, 6. Wout Poels (NED/SKY) 6:03, 7. Chris Froome (GBR/SKY) 6:03, 8. Davide Formolo (ITA/BOR) 6:03, 9. Domenico Pozzovivo (ITA/BAH) 6:03, 10. Richard Carapaz (ECU/MOV) 6:03
Selected others: 13. Tom Dumoulin (NED/SUN) 6:09, 88. Thibaut Pinot (FRA/FDJ) 45:32, 144. Simon Yates (GBR/MIT) 45:32
1. Chris Froome (GBR/Sky) 86hr 11min 50sec, 2. Tom Dumoulin (NED/SUN) at 46sec, 3. Miguel Angel Lopez (COL/AST) 4:57, 4. Richard Carapaz (ECU/MOV) 5:44, 5. Domenico Pozzovivo (ITA/BAH) 8:03, 6. Peio Bilbao (ESP/AST) 11:50, 7. Patrick Konrad (AUT/BOR) 13:01, 8. George Bennett (NZL/LNL) 13:17, 9. Sam Oomen (NED/SUN) 14:18, 10. Davide Formolo (ITA/BOR) 15:16
Selected others: 16. Thibaut Pinot (FRA/FDJ) 43min 46sec, 17. Rohan Dennis (AUS/BMC) 56:07, 18. Mikel Nieve (ESP/MIT) 58:16, 22. Simon Yates (GBR/MIT) 1hr 15min 11sec