Britain's Chris Froome was unable to close the gap on overall leader Juan Jose Cobo on stage 20 of the Vuelta as his hopes of glory were all but ended.
The penultimate stage - a 185km ride from Bilbao to Vitoria in the Basque Country - was won by Italian sprint specialist Daniele Bennati of the Leopard Trek team.
Bennati finished ahead of compatriots Enrico Gasparotto and Damiano Caruso.
Spain's Cobo and Froome finished with the pack in the same time as Bennati.
"I'm going to continue fighting for overall victoryChris Froome
The result means Froome remains 13 seconds behind Cobo and will need something dramatic to happen in Sunday's final stage which finishes in Madrid.
Given the unwritten rule in the Grand Tours that no one attacks the race leader in the last stage, it would be difficult for Froome to overhaul the Geox rider, but 32 seconds in bonuses are up for grabs.
For the 30-year-old Cobo, it would be the first victory in a major tour of his career.
"I'd like it to be a party, like the last stage of a Grand Tour normally is for a winner, but that's not going to be possible," said Cobo.
"I'm closer than ever to winning, but mathematically it's not over, and Froome has got the right to fight on right until the end."
Froome did his best to cut the deficit by picking up bonus seconds in the intermediate sprints, but the race leader followed him like a shadow.
"I'm going to continue fighting for overall victory," said Froome.
"We tried to keep the pressure on Cobo today and once again he didn't crack. But we'll keep trying."
The stage was otherwise marked by several breakaways, notably by Carlos Barredo of Rabobank who led over the first category Urkiola climb.
The 2008 Tour de France winner Carlos Sastre of Spain attacked near the finish and, although he was caught just 4km from the line, his attempt demonstrated his Geox team's alertness to the threat of Team Sky.
20th stage of the Tour of Spain from Bilbao to Vitoria:
1. Daniele Bennati (Italy / Leopard) 4hrs 39mins 20secs
2. Enrico Gasparotto (Italy / Astana) same time
3. Damiano Caruso (Italy / Liquigas)
4. Sep Vanmarcke (Belgium / Garmin)
5. Koen de Kort (Netherlands / Skil - Shimano)
6. Manuele Mori (Italy / Lampre)
7. Davide Malacarne (Italy / Quick-Step)
8. Kristof Vandewalle (Belgium / Quick-Step)
9. Bauke Mollema (Netherlands / Rabobank)
10. Eros Capecchi (Italy / Liquigas)
Overall standings:
1. Juan Jose Cobo (Spain / Geox) 82hrs 38mins 32secs
2. Chris Froome (Britain / Team Sky) +13"
3. Bradley Wiggins (Britain / Team Sky) +1:39"
4. Bauke Mollema (Netherlands / Rabobank) +2:03"
5. Denis Menchov (Russia / Geox) +3:48"
6. Maxime Monfort (Belgium / Leopard) +4:13"
7. Vincenzo Nibali (Italy / Liquigas) +4:31"
8. Jurgen Van den Broeck (Belgium/Omega Pharma-Lotto)+4:45"
9. Daniel Moreno (Spain / Katusha) +5:20"
10. Mikel Nieve (Spain / Euskaltel) +5:33"