Britain's Simon Yates retook the Vuelta a Espana lead with a spectacular summit victory on stage 14.
Jesus Herrada, who moved ahead of Yates to take the red jersey on Thursday, dropped away on a day that featured almost 3,000m of vertical climbing.
Mitchelton-Scott rider Yates, 26, emerged strongest from an elite group of eight on the steep Alto les Praeres.
He burst decisively clear in the final kilometre, leaving behind rivals Nairo Quintana and Alejandro Valverde.
The Englishman is now 20 seconds clear of second-placed Valverde and 25 seconds ahead of the Spaniard's Movistar team leader Quintana in third.
Yates, who first took the lead at this year's race after finishing ninth on stage nine, said: "I'm a bit happier now, I feel more like I deserve it this time.
"I gave everything I could, I'm very happy," he added. "I chose my moment really well and didn't look back until it flattened out a little. There was a bit of a gap, so I just gave everything to the line."
Saturday's 171km race from Cistierna in Castile and Leon had Herrada struggling well before front of the race reached the foot of the final ascent - the day's third category-one climb.
There were gradients of 17% as Team Sky's Michal Kwiatkowski, the sole remaining member of the breakaway, was swept up before Dutchman Steven Kruijswijk became the first to attack from the group of leaders.
The race's main rivals for overall victory attacked and counter-attacked behind, before Miguel Angel Lopez and Quintana opened up what appeared to be a decisive gap.
But suddenly they seemed to tire and no rider was able to answer when Yates broke clear, with Lopez finishing second and Valverde placing third, both two seconds behind him.
Cofidis' Spanish rider Herrada finished nine minutes and 16 seconds back.
Sunday's stage 15 features a third consecutive summit finish as the riders cross 178.2km from Ribera de Arriba to Lagos de Covadonga in Asturias.
Stage 14 results:
1. Simon Yates (GB/Mitchelton-Scott) 4hrs 19mins 27secs
2. Miguel Angel Lopez (Col/Astana) +2secs
3. Alejandro Valverde (Spa/Movistar) Same time
4. Thibaut Pinot (Fra/FDJ) +5secs
5. Nairo Quintana (Col/Movistar) +7secs
6. Steven Kruijswijk (Ned/Team LottoNL-Jumbo) +11secs
7. Enric Mas (Spa/Quick-Step Floors) +19secs
8. Rigoberto Uran (Col/Team EF Education First-Drapac) +27secs
9. Ion Izagirre (Spa/Bahrain-Merida) +37secs
10. Fabio Aru (Ita/UAE Team Emirates) +39secs
1. Simon Yates (GB/Mitchelton-Scott) 59hrs 11mins 18secs
2. Alejandro Valverde (Spa/Movistar) +20secs
3. Nairo Quintana (Col/Movistar) +25secs
4. Miguel Angel Lopez (Col/Astana) +47secs
5. Steven Kruijswijk (Ned/Team LottoNL-Jumbo) +1min 23secs
6. Rigoberto Uran (Col/Team EF Education First-Drapac) +1min 28secs
7. Ion Izagirre (Spa/Bahrain-Merida) +1min 40secs
8. Enric Mas (Spa/Quick-Step Floors) +1min 47secs
9. Tony Gallopin (Fra/AG2R La Mondiale) +1min 55secs
10. Emanuel Buchmann (Ger/Bora-Hansgrohe) +2mins 08secs