La première étape se présente sous la forme d'un circuit à accomplir quatre fois autour de Küsnacht et au bord des lacs de Greifen et de Zurich avec deux cols de troisième catégorie à franchir à chaque passage. La deuxième étape est une étape dite de transition mais comprenant trois cols dont deux de deuxième catégorie avec un dernier sommet à franchir 14 km avant l'arrivée à Aesch. Après une troisième vallonnée parcourant le Jura avec une arrivée à Granges, l'étape suivante, présentant moins de grosses difficultés, est dessinée pour les sprinteurs qui pourront rester parmi les meilleurs lors de l'ascension d'un col de deuxième catégorie situé à une quinzaine de kilomètres de l'arrivée à Brunnen, au bord du lac des Quatre-Cantons. La cinquième étape qui parcourt les routes du Tessin est ponctuée de courtes montées et descentes menant à Novazzano, commune proche de la frontière italienne. La sixième étape est l'étape reine de ce Tour de Suisse avec, au programme, deux cols classés hors catégorie : le col du Nufenen escaladé à mi-parcours et une arrivée au col de Moosalp dans le canton du Valais. La septième étape n'est pas beaucoup plus facile que celle disputée la veille. Elle se termine aussi par une arrivée au sommet dans la station de ski de Malbun au Liechtenstein. Le Tour reste dans cette principauté lors de la dernière étape courue sous la forme d'un contre-la-montre au relief assez plat autour de la capitale principautaire de Vaduz. Au vu du profil des étapes, la victoire finale devrait se disputer lors des trois dernières étapes (deux arrivées au sommet et un contre-la-montre).
Le Tour de Suisse figurant au calendrier de l'UCI World Tour, les dix-huit WorldTeams y participent. Trois ProTeams et une équipe nationale, la Suisse, sont invitées. Vingt-deux équipes participent ainsi à ce Tour de Suisse :
Une échappée de sept hommes se forme en début de course. Dans ce groupe d'attaque, se trouvent Casper Pedersen, Jay Vine et Quinn Simmons qui va glaner de nombreux points pour le classement du meilleur grimpeur. Le dernier fuyard est repris par le peloton à 6,5 km du terme. Ensuite, la course s'anime dans la dernière côte avec plusieurs attaques et accélérations qui déstabilisent le peloton et le scindent en plusieurs groupes. Plusieurs favoris sont lâchés. Finalement, c'est un groupe de quinze coureurs qui se présente à l'arrivée. Le Britannique Stephen Williams (Bahrain Victorious) s'impose au sprint.
Dès le début de l'étape, se forme un groupe d'attaque qui finit par compter un maximum de dix coureurs. Alors que les fuyards sont encore cinq, le Norvégien Andreas Leknessund (Team DSM) s'isole en tête au pied du col du Challpass à 18 kilomètres de l'arrivée. Il parvient à résister au retour du peloton et s'impose en solitaire à Aesch.
Une échappée s'est formée dès les premiers kilomètres de cette troisième étape. Six hommes la compose : Philippe Gilbert (Lotto Soudal), Stefan Bissegger (EF Education), Quinn Simmons (Trek-Segafredo), Joey Rosskopf (Human Powered Health), Manuele Boaro (Astana) et Mathias Reutimann (équipe suisse). Après avoir compté trois minutes d'avance sur le peloton, les échappés sont successivement rattrapés par le peloton, le dernier repris étant Bissegger à 11 kilomètres du terme. Le peloton se présente groupé à Granges et la victoire se joue au sprint remporté par Peter Sagan qui signe un premier succès dans sa nouvelle équipe TotalEnergies.
L'échappée du jour prend forme après une quinzaine de kilomètres. Elle se compose de trois coureurs : Matthew Holmes (Lotto Soudal), Jimmy Janssens (Alpecin-Fenix) et Markus Hoelgaard (Trek-Segafredo). Mais le trio est progressivement repris dans la montée de Sattel, à moins de 20 km du terme, par le peloton. Au sommet de Sattel (15 km de l'arrivée), le peloton compte encore une trentaine d'hommes dont le maillot jaune Stephen Williams (Bahrain-Victorious), qui a recollé, après avoir été un temps distancé. À Brunnen, le Sud-Africain Daryl Impey (Israel-Premier Tech) remporte le sprint devant Michael Matthews (BikeExchange).
En raison d'un cas de Covid-19, l'intégralité de l'équipe Jumbo-Visma se retire de l'épreuve dans la matinée, avant le départ de la course[1], quelques autres coureurs ne prennent pas le départ pour la même raison.
Les cas de Covid-19 se multiplient et le peloton se réduit fortement avant le départ de la 6e étape. Parmi les non partants, on peut citer la maillot jaune Aleksandr Vlasov et acter le retrait des équipes Bahrain Victorious, UAE Emirates et Alpecin-Fenix. Un groupe de douze hommes part à l'attaque et possède un avantage allant jusqu'à plus de sept minutes sur le peloton. Dans la dernière ascension, le groupe des fuyards explose. Ils sont finalement encore cinq au sommet pour se disputer la victoire. L'Allemand Nico Denz s'impose de justesse devant le Français Clément Champoussin. Le peloton avec les favoris se présente avec plus de deux minutes de retard.
Dans cette étape disputée contre-la-montre, Stefan Küng est pointé en tête au temps intermédiaire, deux secondes devant Remco Evenepoel et sept secondes devant Geraint Thomas. Mais le Suisse réalise une moins bonne fin de parcours et termine troisième derrière Evenepoel, vainqueur et Thomas qui remporte le classement général.