Froome fended off attacks on the long final Arcalis climb in what was billed as the 'queen' Pyrenean mountain stage. He finished in 11th place on the stage in a group of GC contenders.
Froome sits 16 seconds ahead of fellow British rider Adam Yates (Orica-BikeExchange) in the general classification, and 19 seconds ahead of third-placed Daniel Martin (Etixx-QuickStep).
Dutch rider Tom Dumoulin (Giant-Alpecin) took a solo stage victory after attacking from the day's escape group just prior to the final climb of Arcalis. Rui Costa (Lampre-Merida) came home in second, with Rafal Majka (Tinkoff) in third, also from the day's escape group.
The beginning of the stage was marked by several early attacks, and finally a 21-man break took hold. One of those present, Alejandro Valverde (Movistar) caused the Sky-led peloton to chase as hard as possible. Valverde then decided to sit up, and drifted back to the bunch.
With a more relaxed attitude toward the remaining 20 riders in the break, they stretched out the lead to over 10 minutes.
Throughout the stage, Majka had been engaged in a battle with Thibaut Pinot (FDJ) and Thomas De Gendt (Lotto-Soudal) for the 85 King of the Mountains points on offer. Pinot prevailed, moving into the polka dot jersey.
Also on a mission to collect points, Peter Sagan (Tinkoff) put himself into the escape and easily took the maximum points on offer in the intermediate sprint with 46km to go – putting him closer to Mark Cavendish (Dimension Data) in the points classification.
Directly after the intermediate sprint, Jérôme Coppel (IAM) and Tsgabu Grmay (Lampre-Merida) attacked the lead group on the second category Côte de la Comella. They were caught before the top as De Gendt attacked to claim the points and then pushed on solo before cracking and getting passed by the rest of the break on the Col de Beixalis.
With 30km to go, Sky were still leading the peloton with the break whittled down to just 10 riders, nine minutes ahead. Dumoulin then struck out with 12km to go, heading into the final Arcalis climb. The Dutchman slipped into time trial mode and continued unchallenged to take the stage victory as torrential rain fell.
Behind Dumoulin, the GC contenders launched a volley of attacks against each other in the closing kilometres of the stage with Yates launching the last move, marked by Froome. Nairo Quintana (Movistar) was in close attendance, and the trio managed to distance Richie Porte (BMC) and Daniel Martin (Etixx-QuickStep) by two valuable seconds on the line.
One of the most notable riders to have dropped off the pace of the GC group was Italian Fabio Aru (Astana), who finished a minute down on Froome.
Alberto Contador (Tinkoff) was the day's highest-profile abandon, climbing into a team car with 100km to go. He had been suffering from a fever overnight on top of his existing injuries from crashing on the opening stage.
Cavendish's key Dimension Data lead-out man Mark Renshaw was another abandon due to illness, with FDJ riders Cedric Pineau and Mathieu Ladagnous also withdrawing to leave the French team with seven riders.
On Monday, the riders can enjoy a welcome break as the race has its first rest day. Racing resumes on Tuesday with stage 10, from Escaldes-Engordany in Andorra to Revel over 197km. After an initial long climb to the category one Port d'Envalira, it's largely downhill save a category three climb just seven kilometres from the finish.
Watch: Tour de France 2016 stage nine highlights
Tour de France 2016, stage nine: Vielha Val d'Aran to Andorre Arcalis, 184.5km
1. Tom Dumoulin (Ned) Giant-Alpecin in 5-16-24
2. Rui Costa (Por) Lampre-Merida at 38 secs
3. Rafal Majka (Pol) Tinkoff at same time
4. Daniel Navarro (Esp) Cofidis at 1-39
5. Winner Anacona (Col) Movistar at 1-57
6. Thibaut Pinot (Fra) FDJ at 2-30
7. George Bennett (NZl) LottoNl-Jumbo at 2-48
8. Diego Rosa (Ita) Astana at 2-52
9. Mathias Frank (Sui) IAM Cycling at 3-44
10. Adam Yates (GBr) Orica-BikeExchange at 6-35
11. Chris Froome (GBr) Team Sky
12. Nairo Quintana (Col) Movistar at same time
13. Richie Porte (Aus) BMC Racing at 6-37
14. Daniel Martin (Irl) Etixx-QuickStep at same time
General classification after stage nine
1. Chris Froome (GBr) Team Sky in 44-36--03
2. Adam Yates (GBr) Orica-BikeExchange at 16 secs
3. Daniel Martin (Irl) Etixx-QuickStep at 19 secs
4. Nairo Quintana (Col) Movistar at 23 secs
5. Joaquim Rodriguez (Esp) Katusha at 37 secs
6. Romain Bardet (Fra) Ag2r at 44 secs
7. Bauke Mollema (Ned) Trek-Segafredo at 44 secs
8. Sergio Henao (Col) Team Sky at 44 secs
9. Louis Meintjes (RSA) Lampre-Merida at 55 secs
10. Alejandro Valverde (Esp) Movistar at 1-01
16. Geraint Thomas (GBr) Team Sky at 3-20
Thank you for reading 5 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