Na początku etapu zaatakowała dwójka zawodników - Pierre-Luc Perichon (Cofidis) i Brent van Moer (Lotto-Soudal). Ich najwyższa przewaga wynosiła trzy minuty i cztery sekundy. Około 14 kilometrów przed metą van Moer oderwał się do bardzo zmęczonego Perichona. Francuz został wchłonięty przez wolno rozpędzający się peleton dopiero sześć kilometrów przed metą. Grupa zasadnicza odrabiała straty. Z około minuty przewagi spadła ona do około 10 sekund na kilometr przed metą. Belg został doścignięty na 150 metrów przed kreską.Walkę sprinterów wygrał Cavendish, który na dzisiejszym etapie wymienił rower, bo stracił siodełko. Mimo to potrafił zwyciężyć na finiszu. To był jego jego 31. etap wygrany w Tour de France. Pierwszy triumf w "Wielkiej Pętli" Cavandish zanotował w 2008 roku, ale poprzedni w 2016. Nic dziwnego, że gdy wygrał po pięciu latach przerwy, to najpierw cieszył się niesamowicie, a potem usiadł na ziem, skrył twarz w dłoniach i płakał ze wzruszenia. Oprócz triumfu na etapie 36-letni Brytyjczyk zdobył też zieloną koszulkę dla najlepszego sprintera.Cavendish zajmuje drugie miejsce w historii pod względem wygranych etapów w Tour de France. Więcej wygrał tylko słynny Belg Eddy Merckx - 34. W klasyfikacji generalnej nie zaszły żadne zmiany. Liderem pozostał Holender Mathieu van der Poel (Alpecin-Fenix). Etap rozpoczął się od protestu kolarzy, którzy zatrzymali się, a następnie w wolnym tempie przejechali 10 kilometrów. Wyrazili w ten sposób swoje niezadowolenie z powodu licznych kraks i braku reakcji ze strony organizatorów. Domagali się włączenia ich przedstawicieli do rozmów z UCI i organizatorami zawodów na temat bezpieczeństwa. Wyniki 4. etapu, Redon - Fougeres (150,4 km): 1. Mark Cavendish (W. Brytania/Deceuninck-Quick Step) - 3:20.17 2. Nacer Bouhanni (Francja/Arkea-Samsic) 3. Jasper Philipsen (Belgia/Alpecin-Fenix) 4. Michael Matthews (Australia/BikeExchange) 5. Peter Sagan (Słowacja/Bora-Hansgrohe) 6. Cees Bol (Holandia/DSM) 7. Christophe Laporte (Francja/Cofidis) 8. Mads Pedersen (Dania/Trek-Segafredo) 9. Boy van Poppel (Holandia/Intermarche-Wanty-Gobert) 10. Andre Greipel (Niemcy/Israel Start-Up Nation) ten sam czas ... 139. Rafał Majka (Polska/UAE) strata 1.07 158. Michał Kwiatkowski (Polska/Ineos Grenadiers) 1.28 Klasyfikacja generalna: 1. Mathieu van der Poel (Holandia/Alpecin-Fenix) - 16:19.10 2. Julian Alaphilippe (Francja/Deceuninck-Quick Step) 8 s 3. Richard Carapaz (Ekwador/Ineos Grenadiers) 31 4. Wout van Aert (Belgia/Jumbo-Visma) ten sam czas 5. Wilco Kelderman (Holandia/Bora-Hansgrohe) 38 6. Tadej Pogačar (Słowenia/UAE) 39 7. Enric Mas (Hiszpania/Movistar) 40 8. Nairo Quintana (Kolumbia/Arkea-Samsic) ten sam czas 9. Pierre-Roger Latour (Francja/TotalEnergies) 45 10. David Gaudu (Francja/Groupama-FDJ) 52 ... 79. Michał Kwiatkowski (Polska/Ineos Grenadiers) 10.09 90. Rafał Majka (Polska/UAE) 11.31 Pawo