Quintana (Movistar) finished 28 seconds ahead of a dogged Dan Martin (UAE Team Emirates) and 48 seconds in front of a charging Thomas at the end of the 65km stage from Bagnères-de-Luchon to Saint-Lary-Soulan.
"The truth is this is a well-deserved victory," said Quintana, "not only for me but for my team who worked really hard and aggressively for that. We’ve demonstrated to being a great team.
"I knew the course. I reconned the final climb but what made me win is above all the support of the squad, and especially Alejandro Valverde who waited for me and put me in a fantastic position."
Quintana moved up to fifth position overall after the stage, still some three minutes and thirty seconds off the yellow jersey.
"The overall classification has become a bit hard but we keep our intention to make the race difficult till the end and this victory gives us the serenity for what comes next."
Froome lost touch with the yellow jersey group with less than 1.5km to go and finished 1min 36sec behind Quintana putting in jeopardy a successfu defence of his 2017 title.
Finishing well was Tom Dumoulin (Sunweb) who now lies in second place overall and Primoz Roglic (LottoNL-Jumbo), both arriving at the finish of the highest point of the Tour 52 seconds behind Quintana.
Thomas now leads Dumoulin by one minute and 59 seconds with Froome third at two minutes and 31 seconds.
"I didn’t know what to expect but it’s been a hard day and I’m happy to leave it behind," said Thomas. "Chris [Froome] told me with 4 or 5km to go that he wasn’t feeling great. There was no way I’d have attacked him but it made me understand that the others had to be in trouble too.
"I followed Roglic and Dumoulin and I went for the seconds bonus of the third place but I also got a time gap so it’s a nice bonus."
[tdf widget="stagewinners" stage="17"]
The stage began with a motorsport-inspired grid start designed to shake up the possibilities but it quickly fell into a familiar pattern with Sky driving the peloton as a breakaway established itself.
From that break, Tanel Kangert (Astana) emerged as the one rider prepared to go solo for the duration of the stage, leading solo before the first summit at Peyragudes and with a small advantage over Jesus Herrada (Cofidis), Kristijan Durasek (UAE Team Emirates) and Julian Alaphilippe (Quick-Step Floors) who continued his quest to win the Polka Dot jersey.Further on Alaphilippe and Kangert had dropped Durasek and Herrada and forged on alone to the top of the Col de Val Louron, with the Quick-Step Floors rider taking the maximum points on offer.
Tanel Kangert during his breakaway on the 17th stage of the Tour de France. (Getty) Source: Getty
Kangert found himself alone again with 15km to go after Alaphilippe declared his mountains mission accomplished and tailed off to finish the stage with the backmarkers.
Martin and Quintana attacked from the yellow jersey group while Roglic launched a pre-emptive attack that was soon shut down but it was the Movistar rider who sustained the pace and after passing Kangert, had the road to himself for the 6.5km ride to the finish.
As Quintana rode to the win, the yellow jersey group shed riders in a war of attrition with Romain Bardet (AG2R) and Froome losing contact as Thomas played defence.
Roglic put in another attack that put Froome in trouble, and a subsequent surge from Dumoulin left Froome behind with Egan Bernal left to pace his leader for the remainder of the climb.