Après la première étape disputée contre-la-montre dans la ville de Frauenfeld située au nord du pays, dans le canton de Thurgovie, les coureurs entament une deuxième étape dont le départ est donné à Neuhausen am Rheinfall, célèbre pour ses chutes du Rhin (canton de Schaffhouse). Cette deuxième étape au relief moyennement accidenté conduit les coureurs à Lachen (canton de Schwyz) au bord du lac de Zurich. La troisième étape assez facile longe plusieurs lacs pour se terminer à Pfaffnau dans le canton de Lucerne. La quatrième étape est une étape de transition menant les coureurs au pied des Alpes dans la célèbre station de Gstaad (canton de Berne). La cinquième étape est la première grosse étape de montagne et compte deux cols de première catégorie au programme ainsi qu'une arrivée en côte à Loèche-les-Bains (canton du Valais). Partant de la petite commune valaisane de Fiesch, la sixième étape commence par l'ascension du Col du Nufenen (hors catégorie) et comprend la montée du col du Lukmanier (première catégorie) dans sa dernière partie avant de rejoindre l'arrivée jugée à Disentis/Mustér dans le canton des Grisons. Un contre-la-montre de 23 kilomètres constitue la septième étape. Il part de Disentis-Sedrun (altitude : 1411 m) pour gravir le col de l'Oberalp (altitude : 2046 m) avant de descendre sur la station d'Andermatt (altitude : 1438 m) dans le canton d'Uri. La huitième et dernière étape autour d'Andermatt est très difficile avec trois cols au programme, le col de l'Oberalp, le col du Lukmanier (première catégorie) et le col du Saint-Gothard (hors catégorie) dont le sommet se situe à 15 kilomètres de l'arrivée.
Le Tour de Suisse figurant au calendrier de l'UCI World Tour, les dix-neuf WorldTeams y participent. Trois ProTeams et une équipe nationale, la Suisse, sont invitées. Vingt-trois équipes participent ainsi à ce Tour de Suisse :
Les favoris pour une victoire au classement général sont nombreux. L'équipe Ineos Grenadiers a plusieurs atouts avec l’Australien Rohan Dennis, deuxième de l'édition 2019, l’Équatorien Richard Carapaz et le Russe Pavel Sivakov remis en selle après sa chute et de son abandon au Tour d'Italie. Parmi les autres favoris, on peur citer le Danois Jakob Fuglsang (Astana), le Colombien Esteban Chaves (Team BikeExchange), l'Espagnol Marc Soler (Movistar) et le Canadien Michael Woods (Israel Start-up)
Cette première étape disputée contre-la-montre consacre deux Suisses aux deux premières places : Stefan Küng (Groupama-FDJ) l'emporte devant Stefan Bissegger (EF Education-Nippo).
Dès le début de la course, une échappée de quatre hommes se constitue. Elle se compose des Suisses Tom Bohli (Cofidis) et Claudio Imhof (Équipe suisse) et des Canadiens Nickolas Zukowsky et Matteo Dal-Cin (Rally Cycling). Les fuyards compte un avantage maximum sur le peloton de plus de 5 min 30 s. Sous la pluie, le peloton refait progressivement son retard et reprend Imhof, le dernier des échappés, à 8,4 kilomètres de l'arrivée lors de l'ascension de la Litschstrasse (col de 2e catégorie) où le champion du monde français Julian Alaphilippe (Deceuninck Quick Step) fait éclater le peloton où seuls huit coureurs parviennent à suivre sa cadence. À 3,5 kilomètres du terme, le champion des Pays-Bas Mathieu van der Poel (Alpecin Fenix) accélère à l'avant de ce groupe. Seul l'Allemand Maximilian Schachmann (Bora Hansgrohe) parvient à prendre sa roue. Mais le Néerlandais continue en tête et termine en puissance en franchissant la ligne d'arrivée en vainqueur.
Dès l'entame de l'étape, trois hommes s'isolent en tête. Il s'agit de l'Américain Benjamin King (Rally Cycling), du Français Rémy Rochas (Cofidis) et du Suisse Claudio Imhof (Équipe suisse), déjà présent dans l'échappée de la veille. Ces trois coureurs sont rejoints après une quinzaine de kilomètres par le Suisse Mathias Frank (AG2R Citroën). Le quatuor compte jusqu'à 7 minutes d'avance sur le peloton à une centaine de kilomètres de l'arrivée avant que cet écart ne commence à décroître régulièrement. À 25 km du but, Rochas lâche ses compagnons d'échappée mais est finalement repris peu de temps après par le peloton. Plusieurs attaques fusent à l'avant du peloton mais sans résultat concluant. L'Espagnol Iván García Cortina (Movistar) attaque à son tour à 8 kilomètres de l'arrivée et réussit à prendre une avance d'une petite vingtaine de secondes sur le peloton mais il est repris aux 700 mètres. Le sprint est lancé sur une route en montée et c'est le champion des Pays-Bas Mathieu van der Poel (Alpecin Fenix), déjà vainqueur la veille, qui gagne l'étape avec plusieurs longueurs d'avance et s'empare du maillot jaune grâce au jeu des bonifications.
Après plusieurs échappées non abouties en première moitié de course, trois coureurs s'extraient du peloton à 93 kilomètres de l'arrivée. Il s'agit du Français Benjamin Thomas (Groupama-FDJ), du Suisse Joël Suter (Équipe suisse) et de l'Américain Joey Rosskopf (Rally Cycling). Le trio est rattrapé une vingtaine de kilomètres plus loin par le Suisse Stefan Bissegger (EducationFirst). Le quatuor désormais constitué creuse l'écart sur le peloton pour compter une substantielle avance de 7 minutes à 20 kilomètres du terme. À 15 kilomètres de l'arrivée, dans les premières pentes du col de Saanenmöser, Suter est distancé. Ensuite Thomas attaque en vue du sommet mais ne parvient pas à distancer ses adversaires. Les trois fuyards descendent vers Gstaad où Stefan Bissegger s'impose. Le peloton arrive à plus de 5 minutes du vainqueur.
Après plusieurs échappées éphémères, trois coureurs partent à l'attaque à 156 kilomètres de l'arrivée. Ce trio est formé par le maillot jaune Mathieu van der Poel (Alpecin-Fenix), Hermann Pernsteiner (Bahrain-Victorious) et Sergio Samitier (Movistar). Les trois hommes de tête sont rejoints par Claudio Imhof (Équipe suisse) à 121 kilomètres du terme. L'écart entre les quatre fuyards et le peloton atteint 3'30" à 108 km de l'arrivée avant de commencer de décroître. À 27 kilomètres de l'arrivée, l'échappée est reprise par le peloton. Dès les premiers mètres de la montée de l'Erschmatt, Antwan Tolhoek (Jumbo-Visma) place une attaque. Il est rejoint puis dépassé par Esteban Chaves (BikeExchange) qui s'isole en tête. Jakob Fuglsang (Astana) sort du groupe des favoris et tente de revenir sur Chaves. Dans la descente, Chaves commet une erreur de trajectoire et Fuglsang, meilleur descendeur, finit par revenir sur lui. Dans la montée finale, Fuglsang lâche Chaves. Derrière ces deux hommes, Michael Woods (Israel Start-Up Nation) tente une attaque dans le groupe des favoris mais se fait contrer par Richard Carapaz (Ineos Grenadiers) qui reprend et dépasse Chaves puis revient sur Fuglsang à 3 kilomètres du sommet. Les deux hommes arrivent ensemble à l'arrivée à Loèche-les-Bains où Richard Carapaz l'emporte et s'empare du maillot jaune.
Dans le col du Saint-Gothard, beaucoup de coureurs tentent de partir en échappé. Julian Alaphilippe à l'avant se relève. David De La Cruz sort dans le col du Lukmanier, il se fait reprendre à six kilomètres de l'arrivée par son équipier Rui Costa, Andreas Krön et Hermann Pernsteiner. Le Portugais fait le sprint en coupant la route, de ce fait Krön est déclaré vainqueur et Costa second.
Cette étape disputée contre-la-montre voit Rigoberto Urán (EducationFirst) gagner en reprenant 54 secondes au maillot jaune Richard Carapaz et ainsi se rapprocher à 17 secondes de celui-ci au classement général.
Le Français champion du monde Julian Alaphilippe (Deceuninck Quick Step), troisième du classement général, n'est pas au départ pour cause de paternité imminente. La course s’est jouée dans la dernière ascension du jour, le col du Saint-Gothard, dont le sommet se situe à 14,8 kilomètres de l’arrivée. Une première attaque est menée par Rigoberto Uran (EducationFirst), deuxième du classement général pour essayer de lâcher le maillot jaune Richard Carapaz mais l'Équatorien et Michael Woods (Israel Start-Up) réussissent à le suivre. Ensuite Woods contre et s’isole en tête. Un peu plus loin, Uran tente une nouvelle fois de lâcher Carapaz mais en vain et c'est le Suisse Gino Mäder (Bahrain) qui réussit à placer un contre et à revenir sur Woods. Les deux coureurs arrivent ensemble à l'arrivée à Andermatt où Mäder franchit la ligne d'arrivée en vainqueur. Carapaz et Uran se neutralisent et arrivent dans le même groupe. Carapaz conserve son maillot jaune.