Richie Porte is on course to secure his best-ever finish with four days left of the Tour de France.
The 35-year-old Launceston rider jumped from sixth to fourth in the general classification standings after a gruelling 17th stage that saw race leader Primoz Roglic strengthen his grip on the yellow jersey.
The Slovenian Jumbo-Visma rider put another 15 seconds on nearest rival Tedaj Pogacar to stretch his buffer out to nearly a minute, but couldn't stop Spain's Miguel Angel Lopez taking the stage win.
Lopez caught Ineos breakaway rider Richard Carapaz 3km from the Col de la Loze summit and held off the Tour's leading pair to pull 15 seconds back on Roglic and jump into third spot.
Porte finished the stage in fifth, 61 seconds behind the winner, and gained a crucial 19 seconds on Brit Adam Yates and nearly a minute on Colombian Rigoberto Uran.
RELATED: Porte's 'biggest challenge ever'
"It was a fistfight to be honest," Porte said.
"It was every man for himself. [Jumbo-Visma rider] Sepp Kuss was there for Roglic but at the end of the day there was nothing teammates could do to really help.
"There are climbs in cycling like the Zoncolan that are absolutely brutal, but today, with the final at altitude, I could barely pedal my bike.
"With 500 metres to go I couldn't stand up. Everybody went super deep. It was a hard day, but I'm happy with the way it turned out. Tomorrow is another hard day; we'll see how the legs back up."
MORE SPORT: McSweyn burns 1500m field in Croatia
Taking ground in the mountains between Meribel and La Roche-sur-Foron (stage 18) and the individual time trial (stage 20) appear Porte's best chances of finishing on the podium for the first time.
His previous best finish in the Tour was a fifth-placed effort with BMC in 2016.
"I'm happy to move to fourth on GC. Let's see how it is tomorrow and get through Friday, then hopefully do a good time trial as well," he said.
- 1. Primoz Roglic 74h 56' 04"
- 2. Tedaj Pogacar + 57"
- 3. Miguel Angel Lopez +1' 26"
- 4. Richie Porte + 3' 05"
- 5. Adam Yates + 3' 14"
- 6. Rigoberto Uran + 3' 24"
- 7. Mikel Landa + 3' 27"