Au col du Soulor, l'échappée, qui n'a pas plus de 3 minutes d'avance, se casse ne gardant que les membres les plus forts, tandis que dans le peloton, la Movistar accélère la cadence. Romain Bardet subit une défaillance dans le Soulor et se retrouve à près de vingt minutes de la tête de la course, ce qui annihile définitivement ses chances au classement général. Une fois le Soulor passé, les coureurs se dirigent vers Luz-Saint-Sauveur pour aborder la montée finale. Élie Gesbert part en solitaire mais sera, comme tous ses compagnons d'échappée, rattrapé par le peloton (mené par les Movistar) qui les tenait à portée.
Dans les premières rampes du Tourmalet, Nairo Quintana décroche, ce qui amène la Movistar à laisser place aux Ineos pour faire le train. Mais ces derniers ne sont pas aussi dominateurs qu'espéré. La Groupama-FDJ en profite et David Gaudu emmène Thibaut Pinot pour imprimer un rythme plus rapide. Dan Martin, Bauke Mollema, Richie Porte, Enric Mas et Rigoberto Urán lâchent tour à tour. Julian Alaphilippe tient bon et alors que les Jumbo-Visma, en supériorité numérique, mènent le train pour leur leader Steven Kruijswijk, Geraint Thomas lâche prise dans les derniers hectomètres. Il ne reste plus qu'une poignée d'hommes pour jouer la victoire d'étape au sommet. Thibaut Pinot s'extirpe du groupe dans les 300 derniers mètres pour s'imposer, et Julian Alaphilippe, resté parmi les meilleurs, attrape la deuxième place avec 6 secondes de bonifications supplémentaires, confortant encore plus son maillot jaune.
Les deux coureurs français sont félicités en personne par Emmanuel Macron, président de la République, venu assister à l'étape du jour en compagnie de Christian Prudhomme, directeur du Tour. Au classement général, Thomas a perdu une trentaine de secondes sur Pinot, Alaphilippe, Kruijswijk, Buchmann et Bernal, arrivés en tête dans cet ordre. Kruijswijk monte d'une place au classement général, dépassant Bernal qui quant à lui reprend à Enric Mas le maillot blanc du meilleur jeune. Le maillot à pois est conservé par Tim Wellens (avec une vingtaine de points d'avance sur Thibaut Pinot qui grâce aux 40 points de sa victoire en côte hors-catégorie à plus de 2 000 m s'intercale entre Wellens et son coéquipier Thomas De Gendt au classement de la montagne) tandis que Peter Sagan semble se diriger vers un septième maillot vert à Paris, ayant près de 100 points d'avance sur son dauphin Sonny Colbrelli.
Chaque jour, un maillot jaune différent est remis au leader du classement général, avec des imprimés rendant hommage à des coureurs ou à des symboles qui ont marqué l'histoire l'épreuve, à l'occasion du centième anniversaire du maillot jaune[1].
Depuis la première ascension au col du Tourmalet en 1910, le peloton a escaladé 82 fois le Géant des Pyrénées. C'est lui qui est sur le maillot du jour.