Le peloton compte 173 coureurs, Tejay Van Garderen étant non partant. Thomas De Gendt, Ben King et Niki Terpstra sortent dès le premier kilomètre, Alessandro De Marchi les rejoint un peu plus loin. Les échappés gagnent du terrain mais les équipes Sunweb et Bora-Hansgrohe contrôlent un écart qui monte jusqu'à cinq minutes. De Gendt passe en tête des quatre premières ascensions. Dans la côte de la Croix de Part, Terpstra et King lâchent. Le duo de tête ne compte plus qu'une minute avant la côte de la Jaillère, alors que le tenant du titre, Geraint Thomas est retardé par une chute de son équipe, mais il parvient à rentrer.
De Marchi est lâché par De Gendt dans la côte de la Jaillère. À la fin de la montée, Julian Alaphilippe attaque pour prendre les bonifications, il est suivi par Thibaut Pinot et les deux coureurs français se relaient, parvenant à distancer le peloton. Thomas De Gendt résiste et gagne l'étape à Saint-Étienne, six secondes devant le duo français, lequel arrive vingt secondes avant le peloton. Alaphilippe reprend le maillot jaune et Pinot devient troisième au classement général, et premier des favoris du Tour 2019.
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[2].
Bernard Hinault, vainqueur à cinq reprises, est aussi le dernier représentant français au palmarès du Tour, il est en impression sur le maillot de leader du jour.