Cette édition du Tour de Bretagne se lance de Locmaria-Plouzané pour une boucle dans le Nord-Finistère jusqu'à Plougonvelin. Le lendemain, la plus longue étape de l'épreuve va de Milizac-Guipronvel à Pontivy en traversant les monts d'Arrée. La course prend ensuite la direction de la presqu'île de Guérande en passant par la côte de Cadoudal, théâtre habituel du Grand Prix du Morbihan. Pour les étapes suivantes, le parcours remonte du Croisic vers la Gacilly, avant d'aller jusqu'à Saint-Méen-le-Grand en faisant un détour par les Côtes-d'Armor. L'avant-dernier jour, le tracé s'étend uniquement sur les routes d'Ille-et-Vilaine, de Saint-Onen-La-Chapelle à Louvigné-Du-Désert. Enfin, après un départ du Hinglé et un tour dans les Côtes-d'Armor, l'arrivée se joue dans les rues de Dinan, ville ayant reçu plus de 30 arrivées du Tour de Bretagne depuis sa création en 1967[1],[2].
Le vainqueur de l'édition précédente, Simon Pellaud étant absent pour se préparer au Tour d'Italie, les principaux favoris à la victoire finale sont l'Allemand Tim Torn Teutenberg (Lidl-Trek Future Racing), récent vainqueur du Paris-Roubaix espoirs et de l'Olympia's Tour, ainsi que le Néerlandais Huub Artz (Wanty-Re Uz-Technord), le Belge Vlad Van Mechelen (Development dsm-firmenich PostNL), l'Américain Colby Simmons (Visma Lease a bike Development) et le Britannique Noah Hobbs (Continentale Groupama-FDJ). Les Français Léo Bisiaux, Noa Isidore (Decathlon-AG2R La Mondiale Development), et les Bretons Ilan Larmet (Dinan Sport Cycling), Florian Dauphin ou encore Pierre Thierry (Arkéa-B&B Hotels Continentale) peuvent également s'imposer sur cette épreuve[3].
À l'issue d'une centaine de kilomètres d'étape en ligne sur les routes du Nord-Finistère, le peloton reprend les échappés du jour avant d'entrer sur le circuit final de la pointe Saint-Mathieu. Le Breton Léo Danès, sur ses routes d'entraînement, et le Néerlandais Loe van Belle tentent de s'extraire du peloton, mais sans succès. Après 146 km de course, l'Allemand Tim Torn Teutenberg (Lidl-Trek Future Racing) s'impose au sprint et remporte le maillot vert de leader du classement général[4].
Après avoir fait partie de l'échappée matinale, puis parcouru les 27 derniers kilomètres du circuit final en solitaire, l'ancien triathlète breton Baptiste Veistroffer (Decathlon AG2R La Mondiale Development Team) remporte l'étape à La Gacilly, quelques secondes devant le peloton. Le maillot vert reste sur les épaules de Jakob Söderqvist[5].
Après plus de 185 km de course, et alors qu'il ne reste que 2 tours à parcourir dans le circuit final à Saint-Méen-le-Grand, un groupe de cinq coureurs se détache du peloton pour revenir sur une échappée de trois membres partis un peu plus tôt. Parmi ces huit hommes de tête, Matys Grisel (Lotto Dstny Development) profite du dernier virage pour s'adjuger le sprint final et remporter cette étape devant Antoine Hue (CIC U Nantes Atlantique) et Manuel Oioli (Q36.5 Continental Cycling Team). Le peloton arrive une poignée de secondes plus tard et les classements pour les maillots distinctifs restent inchangés[6].
Cette avant-dernière étape, considérée comme l'étape reine de ce Tour de Bretagne, avec six côtes répertoriées pour le classement du meilleur grimpeur (dont quatre en moins de 25 km) et un circuit final usant d'une soixantaine de kilomètres dans les rues de Louvigné-du-Désert, est remportée lors d'un sprint massif par le Français Antonin Souchon (VCP Loudéac) devant Matys Grisel (Lotto Dstny Development Team) et Zeno Moonen (Wanty-Re Uz-Technord)[7]. Il s'agit de la première victoire de Souchon parmi les élites.