Tempo real de Flahute. A segunda etapa, entre Lauwin-Planque e Boulogne-sur-Mer, decorreu na região de Hauts-de-France, mas o mau tempo não atrapalhou o Tour, que já estava sem dois ciclistas, Filippo Ganna (INEOS-Grenadiers) e Stefan Bissegger (Décathlon-AG2R), que caíram com gravidade na etapa em redor de Lille.
A estrada estava encharcada e os ciclistas da fuga não podiam deixar de sofrer com isso. Yevgeniy Fedorov ( XDS Astana) e Andreas Leknessund (Uno-X Mobility) partiram com o reincidente Bruno Armirail (Decathlon AG2R) e Brent Van Moer (Lotto Dstny), mas escorregaram numa curva molhada. Tal como no dia anterior, a fuga foi ligada pelo pelotão de forma jokari, com um fio que, na melhor das hipóteses, era de pouco mais de 3 minutos. O objetivo era, portanto, chegar pelo menos até à Côte du Haut Pichot (1,1 km com uma inclinação média de 9%), a primeira subida de 3.ª categoria do percurso, antes que a ligação entre a Côte de Saint-Étienne-au-Mont (1,1 km com uma inclinação média de 9,4%, 3ª categoria) e a Côte d'Outreau (800m com uma inclinação média de 8%, 4.ª categoria) decidisse quem venceria a etapa.
A subida Cavron-Saint-Martin (1,2 km com uma inclinação média de 5%, 4.ª categoria), a 105 km da meta, permitiu a Leknessund conquistar o único ponto em jogo e sarar as cicatrizes da sua queda.
O nervosismo aumentou quando os sprinters farejaram a proximidade da etapa intermédia em Énocq. Depois de Fedorov ter liquidado o grupo de fuga que estava a viver os seus últimos momentos, Jonathan Milan (Lidl-Trek) foi o mais rápido dos especialistas, tal como tinha acontecido no dia anterior. O italiano atacou então Biniam Girmay (Intermarché-Wanty) com uma série de gestos (segundo o community manager da equipa belga, foi porque o eritreu estava a comer pizzas de ananás), enquanto Bryan Coquard (Cofidis) também admoestou o seu compatriota Paul Penhoët (Groupama-FDJ).
A Côte du Haut Pichot, a 30 quilómetros do fim, foi atacada de frente por Wout van Aert (Visma-Lease a bike), revezado nas passagens a 12% por Tim Wellens (UAE-Team Emirates). A multidão era compacta, o espaço para os ciclistas era limitado e Milan começou por atacar com dois smartphones antes de baixar o pé após uma colisão com Remco Evenepoel (Soudal-Quick Step), que tem sido decididamente azarado desde o início.
Declives acentuados e pouco espaço: as duas rampas do final do dia prometiam ser perigosas, com vários puncheurs prontos a sair do pelotão. A Groupama-FDJ tomou a dianteira para encontrar as melhores trajectórias para Romain Grégoire. Uma excelente jogada: no cimo da Côte de Saint-Étienne-au-Mont, que se assemelha ao Mur de Huy com os seus 15% de desnível, o francês era um dos sobreviventes, juntamente com nada menos que Tadej Pogacar (UAE-Team Emirates), já o melhor trepador, Jonas Vingegaard e Matteo Jorgenson ( Visma-Lease a bike), Mathieu van der Poel (Alpecin-Deceunink) e Evenepoel.
Graças à mudança de direção, alguns dos perseguidores reduziram a distância, como Kevin Vauquelin (Arkea-B&B Hôtels) que acelerou na Côte d'Outreau, antes de Vingegaard o seguir com Evenepoel e Pogacar na sua roda. O francês contra-ataca, seguido por Jorgenson e Alexey Lutsenko (Israel - Premier Tech). O Sherpa de "Pogi", João Almeida, esforçou-se por trazer de volta o que restava do pelotão.
Florian Lipowitz (RedBull-Bora hansgrohe), que venceu no sábado, foi o centro das atenções até 800 metros da meta. No último falso plano, Julian Alaphilippe (Tudor) revela-se a 500 metros da meta antes de mudar de direção. Presente no último pelotão, "Loulou" nada pode fazer quando van der Poel assume a liderança a 150 metros da meta. O holandês foi imperioso e ultrapassou Pogacar e Vingegaard para ganhar a etapa e tirar a camisola amarela ao seu companheiro de equipa Jasper Philipsen.
O português João Almeida foi 15.º classificado, com as mesmas 04:45.41 horas do vencedor.