Britain’s Geraint Thomas moved into third place, 29 seconds off the lead, going into Sunday’s final stage of the Criterium du Dauphine.
Ukraine’s Mark Padun won stage seven as Thomas’ Ineos Grenadiers team-mate Richie Porte took the overall lead.
Padun attacked early on the final climb on Saturday and won by 34 seconds from Australia’s Porte, who now leads by 17 seconds from Alexey Lutsenko.
Thomas came ninth, 59 seconds behind Padun, with ex-leader Lutsenko 10th.
Padun, 24, moved to the front with around five kilometres of the 171.5km mountain stage from Saint-Martin-Le-Venoux to La Plagne remaining and the Bahrain Victorious rider stayed clear to secure his first World Tour win.
“After last year I was thinking that maybe cycling is not my sport,” said Padun. “It’s an incredible moment for me.
“I thought maybe I’d arrive in the first 20 guys but then ‘why not do something and maybe they’d show me on TV for my mother’. I want to thank my team, who believed in me and didn’t tell me to stop and wait for [team-mate] Jack Haig. They just let me go for the victory.”
Ineos’ Porte said: “The plan was never to go so far out but at the end of the day it was a good move.
“I know it’s a battle tomorrow [Sunday] but we want to finish it off. Everyone will want to attack but we have a strong team here.”
Sunday’s mountainous final stage is a 147km route from La-Lechere-les-Bains to Les Gets on the western edge of the Alps.
Elsewhere, Britain’s Lizzie Deignan, 32, was second in the first stage of the two-stage women’s Tour de Suisse.
The Trek-Segafredo rider, who has been out with illness for most of the season, was beaten in a sprint finish by Swiss rider Elise Chabbey, giving them a 24-second lead heading into day two.
Criterium du Dauphine stage seven results
1. Mark Padun (Ukr/Bahrain Victorious) 4hrs 35mins 7secs
2. Richie Porte (Aus/Ineos Grenadiers) +34secs
3. Miguel Angel Lopez (Col/Movistar) +43secs
4. Jack Haig (Aus/Bahrain Victorious) Same time
5. Ben O’Connor (Aus/Citroen) +47secs
6. Sepp Kuss (USA/Jumbo-Visma) +52secs
7. David Gaudu (Fra/Groupama) +56secs
8. Enric Mas Nicolau (Spa/Movistar) Same time
9. Geraint Thomas (GB/Ineos Grenadiers) +59secs
10. Alexey Lutsenko (Kaz/Astana-Premier Tech) +1min
General classification after stage 7
1. Richie Porte (Aus/Ineos Grenadiers) 25hrs 28mins 6secs
2. Alexey Lutsenko (Kaz/Astana-Premier Tech) +17secs
3. Geraint Thomas (GB/Ineos Grenadiers) +29secs
4. Wilco Kelderman (Ned/Bora-Hansgrohe) +33secs
5. Jack Haig (Aus/Bahrain Victorious) +34secs
6. Miguel Angel Lopez (Col/Movistar) +38secs
7. Ion Izagirre (Spa/Astana-Premier Tech) Same time
8. Ben O’Connor (Aus/Citroen) +1min
9. David Gaudu (Fra/Groupama) +1min 12secs
10. Aurelien Paret-Peintre (Fra/Citroen) +1min 17secs