Plusieurs attaques infructueuses animent le début d'étape. Christophe Kern (Crédit agricole) parvient à s'extirper au 37e kilomètre. Il passe en tête à l'Alto de Ortigueiro puis décide Matej Jurčo (Team Milram) et Maarten Tjallingii (Silence-Lotto), sortis du peloton et lancés à sa poursuite. Leur avance atteint son maximum à 10 minutes et 30 secondes, au pied du Puerto de Arnicio. À la suite de la prise en charge de la poursuite par l'équipe Astana, l'écart est réduit de 2 minutes au sommet de ce col, puis tombe à 5 minutes à l'Alto de la Colladona. Kern distance ses compagnons sur les pentes de l'Alto del Corda pour basculer au sommet avec 2 minutes d'avance sur les favoris. Jurčo et Tjallingii sont repris au pied Angliru. Kern résiste jusqu'à 10 kilomètres de l'arrivée.
Andreas Klöden, déjà au travail à l'Alto del Corda, mène le groupe de favoris au début de l'ascension final, devant ses coéquipiers d'Astana. À dix kilomètres du but, il est relayé par José Luis Rubiera qui garde cette position. C'est ensuite Levi Leipheimer qui ouvre la route pour Alberto Contador dans les premières pentes à plus de 20 %. Les efforts de l'équipe Astana réduisent peu à peu le groupe des favoris. En outre, Igor Antón avait chuté dans la descente du précédent col et est contraint à l'abandon. Lorsque Leipheimer met fin à son travail pour Contador, Sastre est lâché et la tête de course n'est plus composée que d'Alberto Contador et des deux Caisse d'Épargne Alejandro Valverde et Joaquim Rodríguez. Contador et Valverde accroissent leur avance sur Sastre jusqu'à 3 500 m de l'arrivée. Contador distance Valverde et va chercher la victoire d'étape en solitaire. Il franchit la ligne en mimant un tir de revolver, comme au Tour d'Italie ou au Tour du Pays basque qu'il a remportés en début de saison.
Valverde et Rodriguez rejoignent l'arrivée dans la minute, suivis de Leipheimer. Sastre perd 1 minute et 32 secondes. Au classement général, Contador s'empare de la première place. Il devance son coéquipier Leipheimer d'une minute, et Sastre de plus de 3 minutes. Grâce à son excellente ascension, Valverde remonte à la cinquième place (à 4 min 40 s) et vise le podium.
En prenant la 4e place des trois côtes de première catégorie, et la 11e place à l'Angliru, David Moncoutié a renforcé son maillot de meilleur grimpeur. Avec 113 points, il devance Christophe Kern de 33 points[1].