Madrid - Alberto Contador is on the brink of claiming a third Tour of Spain victory after winning Saturday's 20th and penultimate stage over 185.7km from Santo Estevo de Ribas to Puerto de Ancares.
With only Sunday's 9.7km timetrial left, Contador is virtually certain to claim overall victory in Santiago de Compostella, adding to his Vuelta triumphs in 2008 and 2012.
It will be his sixth Grand Tour success after wins in the Tour de France in 2007 and 2009 and the 2008 Giro d'Italia.
The Spaniard tracked his closest rival Chris Froome, the 2013 Tour de France winner, all the way up the final 12km climb before accelerating past the Briton in the final 500m to win by 16 seconds and increase his overall lead to 1:37.
Contador, who broke his leg less than two months ago during the Tour de France, said the battle with Froome had inspired him.
"To fight for victory against a rider with the record and quality of Froome motivates me to compete with the best in the world," he said.
"It's true that this season has been a challenge for me. Everyone knows that the Vuelta wasn't exactly my aim but as luck would have it I came here.
"Through hard work and some luck I've stayed in the top two throughout the race so I couldn't do any more than that. I just hope to keep the lead tomorrow."
Froome, who was also second in the race in 2011 and fourth in 2012, said on Twitter that he could not have done any more.
"Emptied the tank out there today, what a battle! Thank you for all the support #LaVuelta," he wrote.
Alejandro Valverde came home third 57 seconds down and retained that overall position at 2:35.
Joaquim Rodriguez and Fabio Aru rounded out the top five on the stage as the five best riders in the race came home exactly in their overall positions.
Froome, 29, who started the day second at 1min 19sec behind his Spanish rival, and his Team Sky did everything they could to try to turn the Vuelta his way but Contador would not be denied.
Froome's pressing and accelerations on the final 12km-long hors category Puerto de Ancares climb shed the entire field with even the likes of Valverde, Rodriguez and Italian Aru unable to follow.
But no matter what he tried, Froome could not rid Contador, 31, from his rear wheel and the Tinkoff-Saxo leader bided his time before streaking clear to snatch the stage win, his second of this tour.
Earlier in the day, a four-man break opened up a lead of more than 10 minutes after the first 100km of racing but Sky team and Aru's Astana soon started setting a fierce chase.
The escapees began the penultimate climb, the 10km long first category Alto de Folgueiras de Aigas, with just over 3min on the peloton and 30km left.
By the time they reached the top the lead was down to just 43sec and final hors category Puerto de Ancares loomed ahead after a rapid descent.
Pole Przemyslaw Niemiec resisted the longest but once he was caught with 10km left, Sky's relentless pace at the front of the peloton had whittled down the leading group to less than 20 riders.
Irishman Philip Deignan dug in over a brutally steep section with an 18 percent gradient that shredded the leaders down to nine riders before Spaniard Rodriguez sprung out of the group with 9km left.
That attack saw the leaders split again with only the top five in the standings left fighting for the stage victory.
Rodriguez eked his lead out to 30sec but Froome then launched an attack that dropped first Aru and then Valverde, although Contador clung on grimly.
Froome reeled in Rodriguez and eventually his constant pushing dropped the little Spaniard, known as Purito, yet still Contador could not be prised from the Briton's back wheel.
Froome kept trying to accelerate but Contador was equal to everything and eventually had the kick to take the stage win and 10 bonus seconds as well.
1. Alberto Contador (Spain / Tinkoff - Saxo) 5:11:43"
2. Chris Froome (Britain / Team Sky) +16"
3. Alejandro Valverde (Spain / Movistar) +57"
4. Joaquim Rodriguez (Spain / Katusha) +1:18"
5. Fabio Aru (Italy / Astana) +1:21"
6. Warren Barguil (France / Giant) +2:51"
7. Giampaolo Caruso (Italy / Katusha) +2:55"
8. Samuel Sanchez (Spain / BMC Racing) +2:58"
9. Daniel Navarro (Spain / Cofidis) +3:15"
10. Damiano Caruso (Italy / Cannondale) +3:20"