Le départ de la plus longue étape du Giro 2023 (219 km) a lieu dans la ville toscane de Camaiore située quelques kilomètres au nord de Viareggio où l'arrivée de la veille a été jugée. Le Km 0 est placé à Lido di Camaiore au bord de la Mer de Ligurie dont le parcours suit la côte vers le nord-ouest avant de s'en écarter quelque peu puis d'y revenir en passant par la ville de Sestri Levante. Le tracé quitte alors définitivement la côte ligurienne pour s'orienter vers le nord jusqu'à la ville d'arrivée de Tortone, la ville où Fausto Coppi décéda en 1960.
Cette étape ne compte pas beaucoup de difficultés (deux cols de 3e catégorie et un col de 4e catégorie) et pourrait faire le jeu des sprinteurs.
Initiée par le Belge Laurenz Rex (Intermarché-Circus-Wanty) dès le début de la course, l'échappée du jour prend forme. Elle compte six coureurs : Rex, Veljko Stojnić et Alexander Konychev (Corratec), Diego Pablo Sevilla (Eolo Kometa), Thomas Champion (Cofidis) et Filippo Magli (Green Project-Bardiani). L'avance des fuyards atteint rapidement les quatre minutes puis se stabilise pendant une grande partie de l'étape entre deux et trois minutes. Au sommet de la Colla di Boasi (col de 3e catégorie), à 76 km de l'arrivée, l'avance des attaquants sur le peloton est encore de 1 min. 35 sec. L'écart continue à se réduire sur le peloton emmené par les équipes des sprinteurs. Dans la descente de ce col, à environ 70 km du terme, une importante chute se produit dans le peloton. Les trois premiers du classement général (Geraint Thomas, Primož Roglič et Tao Geoghegan Hart) tombent. Si les deux premiers se relèvent et poursuivent rapidement la course, Geoghegan Hart est emmené en ambulance tandis que Pavel Sivakov repart très attardé. Dans la dernière montée du jour classée en 4e catégorie, le groupe de tête explose et ne compte plus que trois unités : Stojnić, Rex et Champion. Mais le peloton est revenu à 30 secondes au sommet (43 km de l'arrivée). Toutefois, Rex et Stojnić, qui ont lâché Champion, augmentent leur avance sur le peloton à une minute à 30 km du but avant que cet écart ne se réduise inexorablement. Laurenz Rex est le dernier à être repris par le peloton sous la banderole des cinq kilomètres. La victoire se joue au sprint. Jonathan Milan (Bahrain Victorious) et Pascal Ackermann (UAE Emirates) franchissent la ligne d'arrivée ensemble et doivent être départagés par la photo-finish. C'est finalement Ackermann qui est déclaré vainqueur.
Depuis le départ jusqu'à l'issue de cette étape, on note l'abandon de 36 coureurs.