Alberto Contador will win a second Giro d'Italia title on Sunday despite a scare on the penultimate stage.
The Spaniard, who led by four minutes, 37 seconds at the start of stage 20, dropped two minutes, 25 seconds to Fabio Aru, who won a second successive stage to cement second overall.
Aru attacked on the penultimate ascent and Contador was unable to follow.
However, with Sunday's final stage to Milan being largely processional, Aru will not challenge Contador further.
"I didn't feel well, probably because of all the accumulated effort, but I knew I had a good advantage in the general classification," Contador said.
"There was never a moment that I thought the jersey was at risk. This Giro is practically won now, there's just tomorrow's stage, so I'm already thinking of my next goal."
|Contador's Grand Tour success|
|Tour de France - 2007, 2009|
|Giro d'Italia - 2008|
|Vuelta a Espana - 2008, 2012, 2014|
It will be a seventh Grand Tour win for the Tinkoff-Saxo rider, who in July will aim to become the first man since Marco Pantani in 1998 to win the Giro and Tour de France in the same year.
The 32-year-old has already won two Tour de France yellow jerseys and will come up against Britain's 2013 champion Chris Froome in the iconic three-week race.
Italian rider Aru, 24, had trailed Contador by more than six minutes on stage 18 but two successive stage wins and Contador's sluggish climb on the Colle delle Finestre on Saturday narrowed the margin of victory.
"It's incredible and I can't believe it still," said Aru after his fifth career Grand Tour stage win. "I've had a few bad days and suffered, but managing to win again is wonderful."
Sunday's final stage from Turin to Milan is a flat 185km race that is expected to end in a bunch sprint which Contador - to avoid any crashes - will not contest as he still needs to finish the race.
Stage 20 result
1 Fabio Aru (Ita/Astana) 5 hours 12 minutes 25 seconds
2 Ryder Hesjedal (Can/Cannondale) +18secs
3 Rigoberto Uran (Colombia/Etixx-Quick-Step) +24secs
4 Mikel Landa (Esp/Astana)
5 Steven Kruijswijk (Ned/LottoNL) +34secs
6 Alberto Contador (Esp/Tinkoff-Saxo) +2mins 25secs
7 Tanel Kangert (Est/Astana) +2mins 28secs
8 Franco Pellizotti (Ita/Androni Giocattoli)
9 Leopold Koenig (Cze/Team Sky)
10 Diego Rosa (Ita/Astana)
General classification after stage 20
1 Alberto Contador (Esp/Tinkoff-Saxo) 84 hours 3 minutes 30 seconds
2 Fabio Aru (Ita/Astana) +2mins 2secs
3 Mikel Landa (Esp/Astana) +3mins 14secs
4 Andrey Amador (Crc/Movistar) +8mins 19secs
5 Ryder Hesjedal (Can/Cannondale) +9mins 52secs