Geraint Thomas moved into the lead of Paris-Nice after finishing second on Saturday's penultimate stage.
The British Team Sky rider, who started the day 23 seconds adrift of Australian race leader Michael Matthews, ended it leading Alberto Contador by 15 seconds.
Matthews dropped away on a hilly stage before the 15km ascent to the summit finish at La Madone d'Utelle.
A fascintating final 5km saw Contador and Thomas both attack but Katusha's Ilnur Zakarin won the race to the line.
"Thankfully I had the legs and I was able to respond to Contador's attacks," said Thomas.
"I'm disappointed not to win the stage, but to gain a little time on Richie and Contador was really good.
"It's by no means finished. Contador is a pretty good bike rider and Richie and Zakarin too. They have won huge races so there's still a hell of a long way to go."
Thomas had six team-mates helping him on the final climb but only Sergio Henao was around to chase down Contador when the two-time winner of Paris-Nice attacked with 5km remaining.
Zakarin and defending champion Richie Porte, who won the title as a Team Sky rider but now races for BMC, followed to make it a quintet of riders out front and the Australian made his own victory bid in the final kilometre.
However, Thomas' late burst looked to have been enough, but the Welshman was pipped on the line, with Contador one second adrift in third.
Britain's Simon Yates was sixth on the stage to move up to eighth overall, 44 seconds behind Thomas.
Sunday's seventh and final stage is a 141km race which starts and finishes in Nice. It features six categorised climbs, including the famed Col d'Eze, before a descent into town.
Unlike the Tour de France, the final day is not a processional stage, so Contador and Thomas' other rivals will be expected to attack from the start.
Meanwhile, in Italy, Britain's Steven Cummings won stage four of Tirreno-Adriatico. The Dimension Data rider rode clear in the final 3km to win by 13 seconds from Team Sky's Salvatore Puccio.
The 'Race of the Two Seas' is led by Czech rider Zdenek Stybar and finishes on Tuesday.
Stage six result:
1. Ilnur Zakarin (Rus/Katusha) 4hrs 45mins 11secs
2. Geraint Thomas (GB/Team Sky) Same time
3. Alberto Contador (Spa/Tinkoff) +1sec
4. Richie Porte (Aus/BMC Racing) +7secs
5. Sergio Henao (Col/Team Sky) +10secs
6. Simon Yates (GB/Orica GreenEdge) +20secs
7. Mario Costa (Por/Lampre) +31secs
8. Romain Bardet (Fra/AG2R) Same time
9. Jon Izagirre (Spa/Movistar)
10. Tony Gallopin (Fra/Lotto)
General classification after stage six:
1. Geraint Thomas (GB/Team Sky) 24hrs 10mins 26secs
2. Alberto Contador (Spa/Tinkoff) +15secs
3. Ilnur Zakarin (Rus/Katusha) +20secs
4. Richie Porte (Aus/BMC Racing) +21secs
5. Tom Dumoulin (Ned/Giant) +32secs
6. Jon Izagirre (Spa/Movistar) +37secs
7. Sergio Henao (Col/Team Sky) +39secs
8. Simon Yates (GB/Orica GreenEdge) +44secs
9. Tony Gallopin (Fra/Lotto) +51secs
10. Romain Bardet (Fra/AG2R) +1min 00secs