Canada's Ryder Hesjedal won the 14th stage of the Vuelta a Espana with a superb sprint finish.
Switzerland's Oliver Zaugg looked set for victory when he broke clear on a brutal hill climb 1.5km from the end.
But Hesjedal accelerated hard to win, with Spain's Imanol Erviti third.
Britain's Chris Froome produced an impressive late burst to finish 10th and move to third in the overall standings, 73 seconds behind leader Spaniard Alberto Contador.
As the 200.8 km stage from Santander to La Camperona neared its end, 11 breakaway riders reached the base of the final ascent with a five-minute advantage over the peloton.
Zaugg attacked in the steepest part and looked certain to win, only for Hesjedal - the 2012 Giro winner - to overtake him with 200m left.
Team Sky's Froome was the best of the overall leaders as he beat Contador by seven seconds and Alejandro Valverde by 29secs.
Contador retained the red jersey and leads Valverde by 42 seconds, with Froome third after Colombian Rigoberto Uran cracked in the finale.
Meanwhile three-time Tour de France points winner Peter Sagan, 24, of the Cannondale team, pulled out on Saturday and did not even start the stage.
Stage 14 result:
1. Ryder Hesjedal (Can/Garmin) 5hrs 18mins 10secs
2. Oliver Zaugg (Swi/Tinkoff-Saxo) +10secs
3. Imanol Erviti (Spa/Movistar) +30secs
4. Alexandr Kolobnev (Rus/Katusha) +39secs
5. Louis Meintjes (SA/Team MTN) +42secs
6. Bart De Clercq (Belgium/Lotto) +52secs
7. Romain Sicard (Fra/Europcar) +1min 44secs
8. David Arroyo (Spa/Caja Rural) +2min 2secs
9. Carlos Verona (Spa/Omega Pharma-Quick-Step) +2mins 15secs
10. Chris Froome (GB/Team Sky) +2mins 32secs
Overall classification after stage 14:
1. Alberto Contador (Spa/Tinkoff-Saxo) 54hrs 20mins 16secs
2. Alejandro Valverde (Spa/Movistar) +42secs
3. Chris Froome (GB/Team Sky) +1min 13secs
4. Joaquim Rodriguez (Spa/Katusha) +1min 29secs
5. Rigoberto Uran (Col/Omega Pharma-QuickStep) +2min 7secs
6. Fabio Aru (Ita/Astana) +2mins 15secs
7. Robert Gesink (Ned/Belkin)+4mins 14secs
8. Daniel Martin (Ire/Garmin) +4mins 37secs
9. Damiano Caruso (Ita/Cannondale) +4mins 45secs
10. Daniel Navarro (Spa/Cofidis) +5mins 10secs