Nach 30 Kilometern bildete sich eine 14-köpfige Spitzengruppe; zu dieser gehörten unter anderem George Hincapie, Pietro Caucchioli, Michael Boogerd, Óscar Pereiro, Erik Dekker und Laurent Brochard. Das Feld schien an einer Verfolgung zunächst nicht interessiert, so konnten die Ausreißer ihren Vorsprung kontinuierlich vergrößern. Zusammen überquerten sie den Col de Menté mit dem Maximalvorsprung von 18:45 Minuten. Am dritten Bergpreis, dem Col du Portillon, bestand die Gruppe aus nur noch neun Fahrern, die einen Vorsprung von 16:45 Minuten aufwiesen.
Auf dem Col de Peyresourde lagen nur noch sechs Fahrer vor dem Feld, der Vorsprung betrug aber noch immer knapp 16 Minuten. Im Aufstieg zum Col de Val Louron-Azet begann der Vorsprung merklich zu schrumpfen, denn Lance Armstrong hatte das Tempo merklich erhöht; nur Ivan Basso und (wenig später) Jan Ullrich konnten mithalten. Zehn Kilometer vor dem Ziel betrug der Vorsprung der Sechsergruppe noch 7:35 Minuten.
Kurz nach Beginn des Schlussaufstiegs zum Pla d’Adet setzte Basso zu einem Zwischenspurt an; Armstrong konnte parieren, während Ullrich endgültig den Anschluss verlor. An der Spitze des Rennens hatte sich in der Zwischenzeit eine Vierergruppe mit Hincapie, Caucchioli, Boogerd und Pereiro gebildet. Knapp drei Kilometer vor dem Ziel lagen nur Hincapie und Pereiro vorne. Auf den letzten 250 Metern zog Hincapie das Tempo an, überholte Pereiro und siegte mit sechs Sekunden Vorsprung.
Basso und Armstrong folgten nach fünf Minuten, während Ullrich und Michael Rasmussen weitere eineinhalb Minuten auf den Gesamtersten einbüßten.