Le départ de la 3e étape est donné à Súria, commune catalane située à environ 80 kilomètres au nord-ouest de Barcelone. Le parcours s'oriente vers le nord-ouest puis vers le nord pour rejoindre le pied des Pyrénées et la principauté d'Andorre dont la frontière avec la France est franchie après 107,2 km. Une fois en Andorre, la route s'élève assez rapidement pour franchir le col d'Ordino (col de 1re catégorie, montée de 17,7 km, pente moyenne de 7,7 %, altitude de 1 980 m) franchi après 137,2 km de course et à 21,3 km de l'arrivée. Dès la fin de la descente de ce col, les coureurs entament directement l'ascension finale (col de 1re catégorie, montée de 8,3 km, pente moyenne de 7,7 % avec plusieurs passages à 13 %, altitude de 1 914 m) vers le village d'altitude d'Arinsal où se situe la première arrivée au sommet de la Vuelta 2023.
Onze coureurs forment l'échappée du jour. Elle se compose de Mathis Le Berre (Arkea-Samsic), José Manuel Díaz (Burgos-BH), Damiano Caruso et Jasha Sütterlin (Bahrain Victorious), Amanuel Ghebreigzabhier (Lidl-Trek), Lennard Kämna (Bora-Hansgrohe), Eduardo Sepúlveda (Lotto Dstny), Andrea Vendrame (AG2R Citroën), Rune Herregodts (Intermarché-Circus-Wanty), Pierre Latour (TotalEnergies) et Jon Barrenetxea (Caja Rural-Seguros RGA) et compte jusqu'à cinq minutes d'avance sur le peloton. Au pied du Col d'Ordino (39 km de l'arrivée), les onze fuyards comptent encore un avantage de trois minutes sur le peloton. Dans la montée du col d'Ordino, Caruso, Sepulveda et Kämna s'isolent en tête. Le trio conserve une minute d'avance sur le peloton au sommet de ce col. Au pied de la montée finale, Caruso et Kämna sont seuls en tête (Sepúlveda ayant été victime d'une crevaison) avec le peloton à une minute et vingt secondes. À 3 km du sommet, Kämna part seul en tête mais le peloton réduit à une dizaine d'hommes comprenant la plupart des favoris revient sur lui un kilomètre plus loin. Ce peloton se dispute la victoire. Le champion de Belgique Remco Evenepoel attaque sèchement aux 250 mètres et gagne l'étape devant le Danois Jonas Vingegaard. Evenepoel fait coup double en s'emparant du maillot rouge.