Au lendemain du premier jour de repos, les coureurs effectuent 167,5 km entre Lannemezan et Foix. Les premiers kilomètres dans le département des Hautes-Pyrénées puis dans la Haute-Garonne sont relativement plats. Le premier sprint intermédiaire est situé à Saint-Bertrand-de-Comminges. La première côte référencée de l'étape est le col de Larrieu (3e catégorie), au 50e kilomètre. Le parcours redevient plat ensuite, passant par les sprints de Prat-Bonrepaux et Saint-Girons dans l'Ariège. La principale difficulté du jour est le col de Portel (1re cat.), qui s'élève à 1 432 mètres d'altitude à 57 km de l'arrivée. Une dernière côte, le col del Bouich (3e cat.), est située à 22 km de Foix[1].
La course
Onze coureurs s'échappent au km 35: Kurt Asle Arvesen (CSC), Fabian Wegmann (GST), Alessandro Ballan (LAM), Alexandre Botcharov, Dmitriy Fofonov (C.A), Gert Steegmans (QST), Martin Elmiger (ALM), Koos Moerenhout (RAB), Marco Velo (MRM), Benoît Vaugrenard (FDJ) et Amaël Moinard (COF). Ils sont rejoints au km 45 par Filippo Pozzato (LIQ) et Pierrick Fédrigo (BTL). L'écart atteint 15 minutes au pied de la montée vers le col du Portel, le groupe a alors perdu Steegmans. Amaël Moinard s'échappe dans la montée du col, il franchit le sommet avec 1 min 50 s d’avance. Óscar Pereiro (CSC) s'est aussi détaché dans la montée et parvient au sommet avec 1 min 55 s d’avance sur le peloton. Cette échappée de Pereiro provoque une accélération du peloton, par suite l'avance de Moinard diminue rapidement, elle est réduite à 20 secondes à 15 km de l'arrivée puis il est rejoint à 4 km de la ligne d'arrivée. Elmiger et Arvesen se détachent et sont rejoints par Ballan, alors que Moerenhout les suit de près. Arvesen remporte le sprint avec une avance infime sur Elmiger.