Colombia’s Miguel Angel Lopez produced a resilient ride to win the 18th stage of the Vuelta a Espana as Primoz Roglic closed in on the race title.
Lopez overcame the narrow climb in the mist and drizzle on the Alto d’El Gamoniteiro to hand Movistar a first Grand Tour stage victory of the season.
Overall leader Roglic, of Slovenia, finished second to retain the leader’s red jersey, while Enric Mas came third.
The race will reach its conclusion with a time trial on Sunday.
There were plenty of breakaways and attacks on the demanding, mountainous 162.6km stage, with gradients reaching 17% towards the finish.
Lopez took the lead with 4km remaining, and secured a victory to all but ensure he will finish on the podium.
“Things don’t always go as you want, but we’ve tried it this Vuelta and the fruits of that are here,” said Lopez.
“The objective is for both myself and Enric to finish on the podium. It’s a shame we’ve lost so many team-mates throughout the race, but we’re doing what we can without them.”
Roglic is two minutes and 30 seconds in front of second-placed Mas overall, with Lopez 23 seconds further behind the Spaniard in third.
Great Britain’s Adam Yates finished the stage in 10th, and moves up to sixth place overall.
Stage 18 results
1. Miguel Angel Lopez (Col/Movistar) 4hrs 41mins 21secs
2. Primoz Roglic (Slo/Jumbo-Visma) +14secs
3. Enric Mas (Spa/Movistar) +20secs
4. Egan Bernal (Col/Ineos Grenadiers) +22secs
5. Jack Haig (Aus/Bahrain Victorious) +58secs
6. David De La Cruz (Spa/UAE Team Emirates) Same time
7. Gino Mader (Swi/Bahrain Victorious)
8. Louis Meintjes (SA/Intermarche-Wanty-Gobert)
9. Sepp Kuss (US/Jumbo-Visma) +1min 6secs
10. Adam Yates (GB/Ineos Grenadiers) +1min 7secs
General classification after stage 18
1. Primoz Roglic (Slo/Jumbo-Visma) 73hrs 24mins 25secs
2. Enric Mas (Spa/Movistar) +2mins 30secs
3. Miguel Angel Lopez (Col/Movistar) +2mins 53secs
4. Jack Haig (Aus/Bahrain Victorious) +4mins 36secs
5. Egan Bernal (Col/Ineos Grenadiers) +4mins 43secs
6. Adam Yates (GB/Ineos Grenadiers) +5mins 44secs
7. Sepp Kuss (US/Jumbo-Visma) +6mins 2secs
8. Gino Mader (Sui/Bahrain Victorious) +7mins 48secs
9. Guillaume Martin (Fra/Cofidis ) +8mins 31secs
10. Louis Meintjes (SA/Intermarche-Wanty-Gobert) +9mins 2secs