He was soon leader on the road, though Porte, Fuglsang and Aru were always within touching distance and the quartet came together when the road levelled out.
Valverde’s group was almost a minute behind still, and all four of the leaders took turns on the front in order to maintain their advantage.
Fuglsang was first to show his hand, attacking just before flamme rouge, but the four were back together again inside the final 500m and it was Froome who opened up the sprint.
He looked to have a yard on Fuglsang, and Porte appeared blocked in, but both came back strong with the Dane snatching victory in a photo finish.
Valverde, Bardet and Martin were 50 seconds in arrears, while Contador lost more than a minute, meaning Porte now leads Froome by 39 seconds overall, with Fuglsang third at 1’15”.
Yates, meanwhile, now sits 12th overall, 3’26” behind Porte and 56 seconds behind white jersey leader Emanuel Buchmann (Bora-hansgrohe).
Criterium du Dauphine 2017: stage six – result
1) Jakob Fuglsang (DEN) – Astana – 3.41.48hrs
2) Richie Porte (AUS) – BMC Racing – ST
3) Chris Froome (GBR) – Team Sky
4) Fabio Aru (ITA) – Astana
5) Alejandro Valverde (ESP) – Movistar +50”
6) Daniel Martin (IRL) – QuickStep Floors – ST
7) Romain Bardet (FRA) – Ag2r-La Mondiale
8) Oliver Naesen (BEL) – Ag2r-La Mondiale +1.06
9) Alberto Contador (ESP) – Trek-Segafredo – ST
10) Emanuel Buchmann (GER) – Bora-hansgrohe +1.14
General classification
1) Richie Porte (AUS) – BMC Racing – 20.52.34hrs
2) Chris Froome (GBR) – Team Sky +39”
3) Jakob Fuglsang (DEN) – Astana +1.15
4) Alejandro Valverde (ESP) – Movistar +1.20
5) Fabio Aru (ITA) – Astana +1.24
6) Alberto Contador (ESP) – Trek-Segafredo +1.47
7) Daniel Martin (IRL) – QuickStep Floors +2.14
8) Emanuel Buchmann (GER) – Bora-hansgrohe +2.30
9) Romain Bardet (FRA) – Ag2r-La Mondiale +2.49
10) Rafael Valls (ESP) – Lotto-Soudal +3.16
Selected other
12) Simon Yates (GBR) – Orica-Scott +3.26