Une échappée de trois coureurs (Rolf Aldag, Paolo Bettini, Benoît Poilvet) se forme en début d'étape. Richard Virenque et Médéric Clain les rejoignent après le col de Portes, à Béon. Vainqueur de quatre étapes dans la première semaine du Tour 2003, le maillot vert Alessandro Petacchi abandonne dans ce col jurassien.
Au pied du col de la Ramaz, Clain a été lâché. Virenque et Bettini, les deux Quick Step-Davitamon se relaient. Aldag et Poilvet sont lâchés mais le coureur allemand arrive à revenir quand Bettini s'écarte, et il dépasse Virenque, mais celui-ci accélère lorsque la pente devient forte et il est définitivement seul à cinq kilomètres du sommet. Dans le peloton, mené durant toute l'étape par US Postal, Alexandre Vinokourov s'échappe quelques kilomètres dans le col puis il est repris. Virenque continue sa progression, et il remporte l'étape avec une nette avance pour le classement général. Il endosse le maillot à pois et le maillot jaune.
Aldag arrive en deuxième place, suivi par Sylvain Chavanel qui a fait la descente dans les cinq derniers kilomètres.