Australia's Adam Hansen won the 19th stage of the Vuelta a Espana as Alberto Contador maintained the overall lead from Great Britain's Chris Froome.
Hansen, 33, led with 4km to go and held off the peloton to win by four seconds from German John Degenkolb, with Italy's Filippo Pozzato third.
Froome finished the 180.5km stage with the same time as Contador to remain 79 seconds behind the Spaniard.
Spain's Alejandro Valverde is third overall, 13 seconds further back.
The stage was initially dominated by a three-man breakaway, but, although Wout Poels, Pim Ligthart and Laurent Mangel spent around 140km in the lead, they were never allowed an advantage of more than three minutes and 30 seconds.
They were reeled in with just over 20km remaining as Contador's Tinkoff-Saxo team upped the pace to guard against any attacks, following a day when Team Sky's Froome managed to gain 20 seconds.
As the pack hit the final difficulty of the stage, a 4.7km long category two climb, Astana's Alexey Lutsenko attacked.
But, Lutsenko was never allowed more than 10 seconds over the peloton and, as he crested the Alto Monte Faro, he still had more than 15km to ride and little hope of holding on. With 5km remaining, he was swallowed up.
That allowed Hansen through for his second Grand Tour stage victory.
Meanwhile, Team Sky's Italian rider Dario Cataldo withdrew on medical advice with head and shoulder injuries, after crashing on the descent of the Alto Monte Faro.
Saturday's 20th stage is a 185.7km ride from Santo Estevo de Ribas de Sil to Puerto de Ancares.
Stage 19 result:
1. Adam Hansen (Aus/ Lotto) 4hrs 21mins 58secs
2. John Degenkolb (Germany / Giant) +5"
3. Filippo Pozzato (Italy / Lampre) +5"
4. Yannick Martinez (France / Europcar) +5"
5. Michael Matthews (Australia / Orica) +5"
6. Geoffrey Soupe (France /FDJ.fr) +5"
7. Paul Martens (Germany /Belkin) +5"
8. Jasper Stuyven (Belgium /Trek) +5"
9. Romain Hardy (France /Cofidis) +5"
10. Damiano Caruso (Italy /Cannondale) +5"
Overall classification after stage 19:
1. Alberto Contador (Spa/Tinkoff-Saxo) 76hrs 40secs
2. Chris Froome (GB/Team Sky) +1:19"
3. Alejandro Valverde (Spa/Movistar) +1:32"
4. Joaquim Rodriguez (Spa/Katusha) +2:29"
5. Fabio Aru (Ita/Astana) +3:15"
6. Daniel Martin (Ire/Garmin) +6:52"
7. Samuel Sanchez (Spa/BMC Racing) +6:59"
8. Warren Barguil (Fra/Giant) +9:12"
9. Daniel Navarro (Spa/Cofidis) +9:44"
10. Damiano Caruso (Ita/Cannondale) +9:45"