Britain's Simon Yates launched a solo attack to win the 19th stage of the Giro d'Italia on the Alpe di Mera summit on Friday, as Egan Bernal extended his overall lead.
Colombian Bernal, the 2019 Tour de France champion, finished third on the day to keep hold of the leaders' pink jersey with only two stages remaining.
He now leads second-placed Damiano Caruso in the general classification by two minutes and 29 seconds, with Yates 20 seconds further back.
"I'm very happy," said Bernal. "The climb went very well."
Ineos' Bernal could take a huge step towards his second Grand Tour title in Saturday's 20th and penultimate stage, a mountainous 164km ride from Verbania to Valle Spluga, before Sunday's closing time trial.
He managed his effort well on the final climb, although he could not stay with eventual runner-up Joao Almeida in the final few hundred metres.
"I managed, I kept my strength thinking about the time trial on Sunday," Bernal said.
"I'm fine but Yates is the strongest... At the moment. I hope to have the same feelings tomorrow (Saturday). With the altitude, it will be even better. I will try to manage the gaps to Caruso and Yates."
Yates, the 2018 Vuelta a Espana winner, kept his slim title hopes alive with an enterprising ride on Friday.
The 28-year-old BikeExchange rider finished 11 seconds clear of Joao Almeida of Portugal on the day and 28 seconds ahead of Bernal, while also collecting bonus seconds.
It was Yates' fourth Giro stage win but first on this year's race, having claimed the other three in 2018 when he cracked on the 19th stage and blew a large overall lead as Chris Froome took the spoils.
He laid some of those demons to rest, though, attacking more than six kilometres from the summit and comfortably pulling clear of Bernal.
"It was not the most difficult stage although the last climb was tough," said Yates.
"Tomorrow will be more difficult. I will try to do as well as possible but I'm already happy with that."
Italian Caruso remained on track for a surprise podium finish as he lost only eight seconds to Bernal on the day.