Nicholas Roche has taken the overall lead in the Vuelta España after finishing third in the eighth stage.
The Irishman, riding for Saxo-Tinkoff, started eight seconds behind Vincenzo Nibali but rode away from the Italian, who is now fourth, on the final climb.
Czech Leopold Konig held off a late surge from Spaniard Daniel Moreno to win the race to Estepona in Andalucia.
Birmingham-born Irishman Dan Martin withdrew from the Vuelta on Saturday morning after crashing on stage seven.
Martin, the Garmin-Sharp team leader, was suffering from concussion after suffering a blow to the head on Friday and tweeted: "I hit a hole or rock in the road. Down I went.
"Nothing broken, but the most painful crash [I've] ever had. Sad to leave the Vuelta but can't race with these birds flying round my head."
Konig, who rides for the fledgling NetApp Endura team, sped away from the race favourites in the final 5km of the 14.5km-long category one climb to the finish.
Katusha's Moreno led the chase and almost paced his ascent to perfection but finished one second back to move up to third overall.
Roche, the son of 1987 Tour de France winner Stephen, led a group of four riders over the line, five seconds after Konig and with the assistance of a time bonus for finishing third, took the race lead by 17 seconds.
American Chris Horner finished 23 seconds behind Konig, and alongside Team Sky's Rigoberto Uran, but retained second place as he was four seconds clear of Nibali, who had led by three seconds overnight.
Spanish contenders Alejandro Valverde and Joaquim Rodriguez finished together, 19 seconds behind the stage winner, but they were eight seconds ahead of Nibali, to reduce their deficit to the Italian to 13 seconds.
Sunday's ninth stage is a 163.7km race from Antequera to Valdepenas de Jaen.
Result of stage eight
1. Leopold Koenig (Czech Republic / NetApp) 4:09:46"
2. Daniel Moreno (Spain / Katusha) +1"
3. Nicolas Roche (Ireland / Saxo - Tinkoff) +5"
4. Thibaut Pinot (France / FDJ.fr)
5. Ivan Basso (Italy / Cannondale)
6. Bart De Clercq (Belgium / Lotto)
7. Igor Anton (Spain / Euskaltel) +13"
8. Alejandro Valverde (Spain / Movistar) +19"
9. Joaquim Rodriguez (Spain / Katusha)
10. Rigoberto Uran (Colombia / Team Sky) +23"
11. Chris Horner (U.S. / RadioShack)
12. Rafal Majka (Poland / Saxo - Tinkoff)
13. Domenico Pozzovivo (Italy / AG2R)
14. Haimar Zubeldia (Spain / RadioShack)
15. Sergio Henao (Colombia / Team Sky) +27"
16. Vincenzo Nibali (Italy / Astana)
Overall standings after eight stages
1. Nicolas Roche (Ireland / Saxo - Tinkoff) 31:39:30"
2. Chris Horner (U.S. / RadioShack) +17"
3. Daniel Moreno (Spain / Katusha)
4. Vincenzo Nibali (Italy / Astana) +18"
5. Leopold Koenig (Czech Republic / NetApp) +29"
6. Haimar Zubeldia (Spain / RadioShack) +30"
7. Alejandro Valverde (Spain / Movistar) +31"
8. Rigoberto Uran (Colombia / Team Sky) +42"
9. Rafal Majka (Poland / Saxo - Tinkoff) +52"
10. Joaquim Rodriguez (Spain / Katusha) +1:03"