Froome's huge advantage over his nearest rivals meant challenging for the win on the rain-soaked roads was virtually impossible, with no GC contenders even attempting an attack on the day's final climb.
Movistar's Ion Izagirre became the first Spanish winner on this year's Tour, with his teammate Nairo Quintana sealing third place overall. Romain Bardet will stand on the second step of the podium if all goes to plan on Sunday.
Rain lashed the riders for much of the day as Astana rattled along at the head of the peloton for the second day running, despite having Vincenzo Nibali up the road in the breakaway. The presence of Roman Kreuziger (Tinkoff) in the break was a danger to Fabio Aru's high placing in the general classification, but Nibali was often driving the pace higher.
Aru cracked on the lower slopes of the Col de Joux Plane, giving Nibali a licence to attack the two riders off the front of the breakaway - Jarlinson Pantano (IAM Cycling) and Julian Alaphilippe (Etixx-Quick Step), who went away on the descent of the Col de la Ramaz.
With Nibali on the chase, Alaphilippe attacked again to try and distance Pantano with 5.5km to go on the climb, but the Colombian wasn't prepared to give up that easily.
Joaquim Rodriguez attacked off the peloton to try and rise up into the top 10 of the general classification, while at the front of the race Nibali was closing on the front pair.
Pantano looked cooked from two attacks by Alaphilippe, but the winner of stage 15 zoomed straight past the Etixx-Quick Step youngster to try and hold off Nibali a bit longer.
But the Shark of Messina made the bridge and drove the pace at the front with a struggling Pantano and Alaphilippe unable to hold his wheel.
Izagirre moved up to Pantano and Alaphilippe and attacked straight past them; only the Colombian was able to stay wit him as he charged down Nibali.
All the excitement was up the road, with Team Sky resuming their normal position at the head of the peloton, with Froome's GC rivals.
The three riders at the head of the race crested the Joux Plane and the ramp up to the Col du Ranfolly before starting the wet descent to Morzine.
Pantano was the first to make a mistake, taking a corner wide and unclipping a foot and slowing down Nibali, allowing Izagirre to speed off the front.
While the lead trio were taking huge risks, Froome and co gingerly rounded each corner of the descent to limit the risk of devastating crashes.
Izagirre crossed the line to claim the stage win, but behind there was nothing to get excited about and Quinana battled it out to save their places in the general classification.
Aru's struggles saw him drop out of the top 10 altogether, finishing 17 minutes behind the stage winner. Bauke Mollema was another person to lose position again, with Kreuziger taking his place in 10th.
Sunday's traditional procession will see the riders make their way from Chantilly to Paris for the sprint finish on the Champs-Élysées.
Tour de France stage 20, Megeve - Morzine (146km)
1. Ion Izagirre (Esp) Movistar, 4-06-45
2. Jarlinson Pantano (Col) IAM Cycling, at 19s
3. Vincenzo Nibali (Ita) Astana, at 42s
4. Julian Alaphilippe (Fra) Etixx-Quick Step, at 49s
5. Rui Costa (Por) Lampre-Merida, at 1-43
6. Roman Kreuziger (Cze) Tinkoff, at 1-44
7. Wilco Kelderman (Ned) LottoNL-Jumbo, at 2-30
8. Joaquim Rodriguez (Esp) Katusha, at 3-24
9. Dan Martin (Irl) Etixx-Quick Step, at 4-12
10. Romain Bardet (Fra) Ag2r La Mondiale, st
Overall standings after stage 20
1. Chris Froome (GBr) Team Sky, 86-21-40
2. Romain Bardet (Fra) Ag2r La Mondiale, at 4-05
3. Nairo Quintana (Col) Movistar, at 4-21
4. Adam Yates (GBr) Orica-BikeExchange, at 4-42
5. Richie Porte (Aus) BMC, at 5-17
6. Alejandro Valverde (Esp) Movistar, at 6-16
7. Joaquim Rodriguez (Esp) Katusha, at 6-58
8. Louis Meintjes (RSA) Lampre-Merida, st
9. Dan Martin (Irl) Etixx-Quick Step, at 7-04
10. Roman Kreuziger (Cze) Tinkoff, at 7-11
Thank you for reading 20 articles this month* Join now for unlimited access
Enjoy your first month for just £1 / $1 / €1
*Read 5 free articles per month without a subscription
Join now for unlimited access
Try first month for just £1 / $1 / €1