Dans une première heure à nouveau menée tambour battant (44 km/h), les tentatives se multiplient sans aboutir, comme celle d'Alexandre Geniez (FDJ) en début d'étape. Mais l'ascension du Puerto de las Alisas (1e cat, km 49) aiguise les appétits. Parmi les hommes pointés à l'avant, on trouve alors un ancien maillot rouge Darwin Atapuma (BMC), des revanchards, Gianluca Brambilla (Etixx-Quick Step) et Louis Meintjes (Lampre-Merida), deux ambitieux, Kenny Elissonde (FDJ) et Romain Hardy (Cofidis) et deux équipiers de Chris Froome, David Lopez et Peter Kennaugh. Au sommet, c'est Lopez qui passe en tête devant Meintjes et Brambilla. Atapuma tombe dans la descente et est repris par le peloton, emmené par les Movistar, qui maintiennent l'écart sous les 2'30”. En bout de course, Florian Sénéchal (Cofidis) abandonne, victime d'ennuis gastriques tenaces, bientôt imité par Fabrice Jeandesboz (Direct Energie).
À 50 km de l'arrivée, le peloton hausse le ton et l'écart, qui n'a jamais dépassé 2'40”, se réduit. À l'avant, Romain Hardy et David Lopez ont lâché prise dans la première ascension de l'Alto el Vivero (2e cat, km 151), où Kenny Elissonde empoche les points, comme lors de l'ascension précédente (Alto la Escrita, 3e cat.). Le groupe se reforme dans la descente, mais en pure perte car le peloton, emmené par Alessandro Vanotti et le reste de l'équipe Astana, est revenu à 20 secondes lors du premier passage sur la ligne, à 29 km du but. Onze kilomètres plus loin, la cause est entendue et la meute met fin à l'aventure.
La deuxième ascension de l'Alto el Vivero voit Dries Devenyns (IAM Cycling) se porter à l'avant tandis que les leaders s'observent. Andrey Zeits (Astana), George Bennett (Lotto Nl-Jumbo), Mathias Frank (IAM Cycling) et Matvey Makynin (Katusha) se lancent à la poursuite de l'échappé belge mais sont matés sur un démarrage sans suite d'Alberto Contador (Tinkoff).
Dries Devenyns atteint le sommet avec 30 secondes d'avance sur la tête du peloton, où on aperçoit notamment Pierre Rolland (Cannondale-Drapac) et Dani Moreno (Movistar).
Déjà passé tout près de la victoire dans la 9e étape, Devenyns échoue à nouveau à 2 km de la ligne, où il doit rentrer dans le rang. Des finisseurs sont encore dans le peloton qui entre à nouveau dans Bilbao et parmi eux Jens Keukeleire, qui offre à son équipe Orcia-BikeExchange sa deuxième victoire dans cette Vuelta après celle de Simon Yates dans la 6e étape à Luintra. Sur la ligne, il précède le Français Maxime Bouet (Etixx-Quick Step) et l'Italien Fabio Felline (Trek-Segafredo). Le maillot rouge reste sur les épaules de Nairo Quintana.