Norway's Edvald Boasson Hagen won his third Tour de France stage and first in six years on Friday's 19th stage from Embrun to Salon de Provence as Chris Froome edged closer to overall victory.
Boasson Hagen, who was edged out in a photo finish by Marcel Kittel on the seventh stage, was part of a 20-man breakaway but made a winning solo bid inside the final 3km as Nikias Arndt came second and Jens Keukeleire third.
Briton Froome kept hold of the race leader's yellow jersey ahead of Saturday's decisive time-trial in Marseille after a leisurely stroll in the saddle for the peloton.
Frenchman Romain Bardet remains second at 23sec with Rigoberto Uran of Colombia third at 29sec.
The large group of escapees broke clear early on in the 222.5km stage -- the longest of this year's race -- that started in the Alps before ending close to the Mediterranean.
Reigning champion Froome's Sky team-mates at the front of the peloton showed no interest in chasing them down and so the gap gradually increased to over 10 minutes.
Inside the final 20km, an attack from Belgian Keukeleire, who was voted the most combative rider of the day, split the lead group with a front nine forming.
And the winning move came just inside the final 3km when the nine riders came to a roundabout.
Seven went around to the left, which proved to be the longer route, while Arndt and Boasson Hagen stuck to the shorter right side, emerging with a clear lead of several bike lengths.
Arndt pushed hard and then moved over to let Boasson Hagen take the lead, but the Norwegian simply rode the German off his wheel and powered on to the finish to win by five seconds, with Keukeleire leading home the other seven 17sec back.
The trundling Sky-led peloton arrived 12 and a half minutes after their former team-mate.
Saturday's 22.5km time-trial around Marseille offers Bardet and Uran one last chance to try to dethrone three-time winner Froome, who is widely considered the best time-trialist of the three.