Valverde, riding for the Movistar team, was adding this 174.7km ride from Lleida to Collada de la Gallina in Andorra to his win in the third stage in Alcaniz.
The 32-year-old prevailed in a sprint from Rodriguez and Saxo-Bank's Alberto Contador after the concluding climb up the Col de la Gallina.
Team Sky's Christopher Froome crossed the line in fourth, 15 seconds behind this trio.
In the overall standings Rodriguez continues to hold command from Froome, who lost ground to be placed 33sec behind the leader, and Contador, 40sec adrift, with Valverde 50sec off the pace.
Contador, winner of the Vuelta in 2008, appeared best placed to win the stage when he opened up a gap of around 100m only for Rodriguez and eventual winner Valverde to dig deep and catch him to set up the final dash for the line.
Earlier the day was marked by a six-man breakaway comprising Amael Moinard (BMC) and Michael Buffaz (Cofidis), Australia's Cameron Meyer (Orica-Greenedge), Javier Aramendia (Caja Rural), Javier Ramirez Abeja (Andalucia) and Matijn Keizer.
At the foot of the final climb Meyer made a bid for glory only to be reeled in by the chasing favourites.
Leading Spanish Vuelta results after the eighth stage, a 174.7km ride from Lleida to Collada de la Galina on Saturday:
1. Alejandro Valverde (ESP/MOV) 4hr 06min 39sec
2. Joaquin Rodriguez (ESP/KAT) at 0:00s
3. Alberto Contador (ESP/SAX) 0:00.
4. Chris Froome (GBR/SKY) 0:15.
5. Daniel Moreno (ESP/KAT) 0:23.
6. Benat Intxausti (ESP/MOV) 0:33.
7. Igor Anton (ESP/EUS) 0:33.
8. Winner Anacona (COL/LAM) 0:39.
9. Robert Gesink (NED/RAB) 0:39.
10. Przemyslaw Niemiec (POL/LAM) 0:42.
11. Andrew Talansky (USA/GRM) 0:44.
12. Nicolas Roche (IRL/ALM) 1:02.
13. Rinaldo Nocentini (ITA/ALM) 1:02.
14. Laurens ten Dam (NED/RAB) 1:05.
15. Eros Capecchi (ITA/LIQ) 1:06.
16. Tomasz Marczynski (POL/VAC) 1:24.
17. Maxime Bouet (FRA/ALM) 1:25.
18. Maxime Monfort (BEL/RSH) 1:30.
19. Steve Morabito (SUI/BMC) 1:34.
20. Cameron Meyer (AUS/GEC) 1:37.
Overall standings:
1. Joaquin Rodriguez (ESP/KAT) 29h59min 35sec
2. Chris Froome (GBR/SKY) at 0:33.
3. Alberto Contador (ESP/SAX) 0:40.
4. Alejandro Valverde (ESP/MOV) 0:50.
5. Robert Gesink (NED/RAB) 1:41.
6. Daniel Moreno (ESP/KAT) 1:48.
7. Nicolas Roche (IRL/ALM) 2:14.
8. Igor Anton (ESP/EUS) 2:47.
9. Laurens ten Dam (NED/RAB) 2:58.
10. Bauke Mollema (NED/RAB) 3:07.
11. Przemyslaw Niemiec (POL/LAM) 3:20.
12. Eros Capecchi (ITA/LIQ) 3:20.
13. Tomasz Marczynski (POL/VAC) 3:26.
14. Sergio Henao (COL/SKY) 3:34.
15. Winner Anacona (COL/LAM) 3:38.
16. Andrew Talansky (USA/GRM) 3:40.
17. Rinaldo Nocentini (ITA/ALM) 3:42.
18. Steve Morabito (SUI/BMC) 4:09.
19. Maxime Monfort (BEL/RSH) 4:12.
20. Bart De Clercq (BEL/LTB) 5:04.