Vuelta a Espana: Chris Horner takes lead from Vincenzo Nibali

Chris Horner snatched the overall lead in the Vuelta a Espana from Vincenzo Nibali after Joaquim Rodriguez won the 19th stage with a stunning late burst.

Rodriguez finished 11 seconds ahead of Diego Ulissi in the 181km ride from San Vicente de la Barquera to Oviedo.

American Horner, 41, came in fifth, six seconds ahead of Nibali, to move three seconds in front of the Italian overall with only two stages left.

Spain's Alejandro Valverde posted the same time as Horner to remain third.

Spanish rider Rodriguez attacked with just over a kilometre of the mountainous stage left to claim a solo victory.

But the real drama was just behind as 41-year-old Horner pulled away from Giro d'Italia champion Nibali over the final meters of the climb to seize a potentially decisive lead in the general classification.

Saturday's penultimate stage is a 142km course, including three major summits and an ascent of a special-category climb to the Alto de l'Angliru peak, before the traditional finish in Madrid on Sunday.

Result of Stage 19:

1. Joaquim Rodriguez (Spain / Katusha) 4 hours, 16 minutes 13 seconds

2. Diego Ulissi (Italy / Lampre) +11 seconds

3. Daniel Moreno (Spain / Katusha) "

4. Samuel Sanchez (Spain / Euskaltel) "

5. Chris Horner (U.S. / RadioShack) +14"

6. Alejandro Valverde (Spain / Movistar) "

7. Michele Scarponi (Italy / Lampre) +16"

8. Leopold Koenig (Czech Republic / NetApp) +20"

9. Vincenzo Nibali (Italy / Astana) "

10. Nicolas Roche (Ireland / Saxo - Tinkoff) +23"

Overall standings after Stage 19:

1. Chris Horner (U.S. / RadioShack) 77 hours, 56 minutes, 5 seconds

2. Vincenzo Nibali (Italy / Astana) +3"

3. Alejandro Valverde (Spain / Movistar) +1:06"

4. Joaquim Rodriguez (Spain / Katusha) +1:57"

5. Nicolas Roche (Ireland / Saxo - Tinkoff) +3:49"

6. Domenico Pozzovivo (Italy / AG2R) +6:00"

7. Leopold Koenig (Czech Republic / NetApp) +6:38"

8. Thibaut Pinot (France / FDJ.fr) +7:02"

9. Samuel Sanchez (Spain / Euskaltel) +7:45"

10. Daniel Moreno (Spain / Katusha) +11:05"