Keukeleire, 27 ans, a devancé sur la ligne d'arrivée le Français Maxime Bouet (Etixx) et l'Italien Fabio Felline (Trek). Le Belge a réglé un groupe raboté dans lequel figuraient deux Suisses, Silvan Dillier (9e) et Mathias Frank (10e).
"C'est fantastique de gagner l'étape. Je me sentais bien ces deux derniers jours, mais aujourd'hui j'ai beaucoup souffert, même si je crois que tous ont dû souffrir aussi", a déclaré le Belge, qui a remporté sa première victoire sur un grand Tour.
Pas de changement majeur au général
Nairo Quintana conserve le maillot rouge de leader avec 54 secondes d'avance sur son dauphin, le Britannique Chris Froome, et 1'05 sur son coéquipier espagnol Alejandro Valverde.
Le peloton reliera vendredi Bilbao et Urdax Dantxarinea, dans une étape de 213,4 km qui passera par deux fois en France et épicée par le franchissement de 4 cols de troisième catégorie.
ats/bond
Vuelta, 12e étape, Los Corrales de Buelna - Bilbao (193,2 km)
1. Jens Keukeleire BEL 4h31'43"
2. Maxime Bouet FRA + 0"
3. Fabio Felline ITA 0"
4. Kristian Sbaragli ITA 0"
5. Luis Leon Sanchez ESP 0"
6. Peio Bilbao ESP 0"
7. Jan Bakelants BEL 0"
8. Alejandro Valverde ESP 0"
9. Silvan Dillier SUI 0"
10. Mathias Frank SUI 0"
15. Marcel Wyss SUI 0"
61. Danilo Wyss SUI 7'41"
84. Simon Pellaud SUI 12'10"
Vuelta, classement général (01.09)
1. Nairo Quintana COL 46h53'31"
2. Chris Froome GBR + 0'54"
3. Alejandro Valverde ESP 1'05"
4. Esteban Chaves COL 2'34"
5. Alberto Contador ESP 3'08"
25. Marcel Wyss SUI 12'04"
36. Mathias Frank SUI 24'03"
69. Danilo Wyss SUI 1:16'24"
79. Simon Pellaud SUI 1:24'04"
101. Silvan Dillier SUI 1:40'19"
Les 21 étapes
20.08: 1ère étape CLM par équipes Ourense - Castrelo, 27,8 km
21.08: 2e étape Ourense - Bayona, 160,8 km
22.08: 3e étape Marin - Mirador de Ezaro, 176,4 km
23.08: 4e étape Betanzos - San Andrés de Teixido, 163,5 km
24.08: 5e étape Viveiro - Lugo, 171,3 km
25.08: 6e étape Monforte de Lemos - Luintra, 163,2 km
26.08: 7e étape Maceda - Puebla de Sanabria, 158,5 km
27.08: 8e étape Villalpando - La Camperona, 181,5 km
28.08: 9e étape Cistierna - Alto del Naranco, 164,5 km
29.08: 10e étape Lugones - Lagos de Covadonga, 188,7 km
31.08: 11e étape Colunga - Pena Cabarga, 168,6 km
01.09: 12e étape Los Corrales de Buelna - Bilbao, 193,2 km
02.09: 13e étape Bilbao - Dantxarinea, 213,4 km
03.09: 14e étape Dantxarinea - Col d'Aubisque, 196 km
04.09: 15e étape Sabinanigo - Formigal, 118,5 km
05.09: 16e étape Alcaniz - Peniscola, 156,4 km
07.09: 17e étape Castellon - Lucena, 177,5 km
08.09: 18e étape Requena - Gandia, 200,6 km
09.09: 19e étape CLM Javea - Calpe, 37 km
10.09: 20e étape Benidorm - Alto de Aitana, 193,2 km
11.09: 21e étape Las Rozas - Madrid, 104,1 km