It was the RadioShack rider's second stage win of this year's Vuelta following his third stage success that also saw the 41-year-old wear red for a day, before losing it to Italy's Vincenzo Nibali.
The Astana rider finished second on the punishing mountainous 187km stage from Torredelcampo to Alto de Haza Llana, which included 18 percent ramps in the final stages, losing 48 seconds to the American with Spaniard Alejandro Valverde third at just over a minute back.
Horner paid tribute to his time-trial specialist teammate Fabian Cancellara for his help on the stage.
"I've got to thank my teammate Fabian Cancellara who worked for me for most of the stage," said the American.
"I had one worry which was seeing how to attack on such a tough (mountain) pass to win the stage, especially given that in the group there was Nibali, (Ivan) Basso, Purito (Joaquim Rodriguez), Valverde."
Horner broke clear on his own in the final five kilometres and quickly edged out a significant gap as the other overall contenders marked each other's responses.
Eventually Nibali kicked for home and got clear of the other chasers, but by now Horner was already well on his way to victory.
"It was hard to get back up to Horner given the heat hit us hard, but I'm very satisfied given how much racing there's been already," said the Italian, the 2010 Vuelta winner and this year's Giro d'Italia champion.
"After the rest day there's the 38km time-trial which will sort out the overall standings a bit better."
Horner leads Nibali in the overall standings by 52 seconds with Valverde, the 2009 Vuelta champion, third at 1min 08sec.
Overnight leader Daniel Moreno lost over two minutes to drop outside the top five.
Tuesday is the first of two rest days before Wednesday's individual 39km time trial around Tarazona.
The race finishes in Madrid on September 15.
Results from the 10th stage of the Tour of Spain, a 186.8 km ride from Torredelcampo to Alto de Hazallanas on Monday:
1. Chris Horner (USA/RSH) 4hr 30min 22sec
2. Vincenzo Nibali (ITA/AST) at 0:48s
3. Alejandro Valverde (ESP/MOV) 1:02.
4. Ivan Basso (ITA/CAN) 1:02.
5. Joaquin Rodriguez (ESP/KAT) 1:02.
6. Thibaut Pinot (FRA/FDJ) 1:02.
7. Nicolas Roche (IRL/SAX) 1:10.
8. Igor Anton (ESP/EUS) 1:25.
9. Domenico Pozzovivo (ITA/ALM) 1:25.
10. Rafal Majka (POL/SAX) 1:52.
11. Mikel Nieve (ESP/EUS) 2:22.
12. Daniel Moreno (ESP/KAT) 2:22.
13. Samuel Sanchez (ESP/EUS) 2:22.
14. Eros Capecchi (ITA/MOV) 2:22.
15. Dominik Nerz (GER/BMC) 2:48.
16. David Arroyo (ESP/CJR) 2:48.
17. Tanel Kangert (EST/AST) 2:48.
18. Kenny Elissonde (FRA/FDJ) 3:07.
19. Jose Mendes (POR/APP) 3:07.
20. Leopold Knig (CZE/APP) 3:07.
1. Chris Horner (USA/RSH) 40hr 29min 14sec
2. Vincenzo Nibali (ITA/AST) at 0:43.
3. Nicolas Roche (IRL/SAX) 0:53.
4. Alejandro Valverde (ESP/MOV) 1:02.
5. Joaquin Rodriguez (ESP/KAT) 1:40.
6. Daniel Moreno (ESP/KAT) 2:04.
7. Ivan Basso (ITA/CAN) 2:20.
8. Thibaut Pinot (FRA/FDJ) 3:11.
9. Rafal Majka (POL/SAX) 3:16.
10. Domenico Pozzovivo (ITA/ALM) 3:28.
11. Leopold Knig (CZE/APP) 3:58.
12. Eros Capecchi (ITA/MOV) 4:09.
13. Ivan Santaromita (ITA/BMC) 4:35.
14. Tanel Kangert (EST/AST) 4:42.
15. Rigoberto Uran (COL/SKY) 5:12.
16. Laurens ten Dam (NED/BKN) 6:05.
17. Samuel Sanchez (ESP/EUS) 6:33.
18. David Arroyo (ESP/CJR) 6:33.
19. Dominik Nerz (GER/BMC) 6:36.
20. Mikel Nieve (ESP/EUS) 6:39.