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.
Sunday’s mountainous final stage is a 147km route from La-Lechere-les-Bains to Les Gets on the western edge of the Alps.
Stage results
1. Mark Padun (Ukr/Bahrain Victorious) 4hrs 35mins 7secs
2. Richie Porte (Aus/Ineos Grenadiers)
3. Miguel Angel Lopez (Col/Movistar)
4. Jack Haig (Aus/Bahrain Victorious)
5. Ben O’Connor (Aus/Citroen)
6. Sepp Kuss (USA/Jumbo-Visma)
7. David Gaudu (Fra/Groupama)
8. Enric Mas Nicolau (Spa/Movistar)
9. Geraint Thomas (GB/Ineos Grenadiers)
10. Alexey Lutsenko (Kaz/Astana-Premier Tech)
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