Porte, po fatalnym początku wyścigu, kiedy to stracił kilkanaście minut już na drugim etapie, zapowiadał rewanż i walkę o zwycięstwa etapowe i dziś dotrzymał słowa. Australijczyk od początku finałowego podjazdu pod Col de la Couillole jechał bardzo czujnie w grupie faworytów i gdy tylko uciekinierzy zostali doścignięci i wszelkie akcje zaczepne zostały skasowane, pilnował swoich najgroźniejszych rywali i zaatakował w końcówce.
Finałowy podjazd, liczący 15,7 kilometra, był jedną z ostatnich okazji, by cokolwiek zmienić w klasyfikacji generalnej i ostatnią szansą dla górali, by powalczyć o zwycięstwo etapowe. Dlatego też ekipy faworytów kontrolowały peleton i ucieczka, z której najdłużej na czele utrzymywał się Lilian Calmejane (Direct Energie), została skasowana na początku podjazdu i mimo kilku innych akcji, faworyci i ich pomocnicy szybko przejęli dowodzenie. Kolarze Trek-Segafredo i Team Sky dyktowali tempo w coraz szczuplejszej grupie faworytów, aż na 6 kilometrów przed metą na czele została już tylko szóstka kolarzy, w tym same jedynki poszczególnych ekip – Sergio Henao (Team Sky), Alberto Contador (Trek-Segafredo), Richie Porte (BMC Racing Team), Dan Martin (Quick-Step Floors), Jon Izagirre (Bahrain-Merida) i Jakob Fuglsang (Astana). Już kilka kilometrów wcześniej tempa nie wytrzymał lider wyścigu, Julian Alaphilippe (Quick-Step Floors) i pewne było, że po dzisiejszym etapie klasyfikacja generalna ulegnie zmianie.
Spokój w czołówce trwał do czwartego kilometra przed szczytem, kiedy ożywił się Porte, a atak Australijczyka 500 metrów dalej okazał się skuteczny na tyle, że rywale nie byli w stanie go już dogonić. Za jego plecami Contador i Henao próbowali zminimalizować straty, ale bezskutecznie. Dopiero na 600 metrów przed szczytem Hiszpan zostawił rywala i pognał do mety w poszukiwaniu cennych sekund, ale to Porte był najszybszy, a Contador stracił 21 sekund. Henao w końcówce dał się jeszcze wyprzedzić Martinowi, lecz mimo to po etapie założył koszulkę lidera wyścigu i przed ostatnim dniem ścigania wyprzedza Martina o 30 sekund i Contadora o 31.
Wyniki 4. etapu:
1 Richie Porte (Aus) BMC Racing 5:01:35
2 Alberto Contador (Spa) Trek-Segafredo 0:00:21
3 Dan Martin (Irl) Quick-Step Floors 0:00:32
4 Sergio Henao (Col) Team Sky
5 Ion Izagirre (Spa) Bahrain-Merida 0:00:55
6 Jakob Fuglsang (Den) Astana Team 0:01:07
7 Pierre Latour (Fra) AG2R La Mondiale 0:01:11
8 Ilnur Zakarin (Rus) Katusha-Alpecin 0:01:21
9 Marc Solar (Spa) Movistar Team
10 Gorka Izagirre (Spa) Movistar Team
Klasyfikacja generalna po 7. etapie:
1 Sergio Henao (Col) Team Sky 27:01:15
2 Dan Martin (Irl) Quick-Step Floors 0:00:30
3 Alberto Contador (Spa) Trek-Segafredo 0:00:31
4 Gorka Izagirre (Spa) Movistar Team 0:01:00
5 Julian Alaphilippe (Fra) Quick-Step Floors 0:01:22
6 Ilnur Zakarin (Rus) Katusha-Alpecin 0:01:34
7 Ion Izagirre (Spa) Bahrain-Merida 0:01:41
8 Tony Gallopin (Fra) Lotto Soudal 0:03:22
9 Warren Barguil (Fra) Team Sunweb 0:04:07
10 Simon Yates (GBr) Orica-Scott 0:04:39