A day after helping Daniel Moreno to victory, Rodriguez had the favour returned by his fellow Spaniard and Katusha team-mate to finish the 187km stage in 4 hours, 42 minutes, 54 seconds.
Dutch rider Wouter Poels of Vancansoleil-DCM was four seconds behind Rodriguez, crossing the finish line one second ahead of Moreno. Poels' Dutch team-mate Bauke Mollema was seven seconds behind in fourth while Italian rider Michele Scarponi led a group of six that finished eight seconds back of Rodriguez.
"I had marked this stage down with an X beforehand," said Rodriguez, who finished fourth overall last year. "Last year I broke too early. This year I'm unbeatable."
Chavanel leads overall by nine seconds from Moreno after timing 18:02:34. Rodriguez moved within 23 seconds of the QuickStep cyclist in third, three seconds better than Danish rider Jakob Fuglsang.
Defending champion Vincenzo Nibali was 11th - 11 seconds behind - to trail Chavanel by 33 seconds in fifth.
British sprinter Mark Cavendish did not race after pulling out during Tuesday's fourth stage.
Organisers held one minute's silence before the start in honour of Spanish cyclist Xavier Tondo, who died in a freak accident earlier this year.
Thursday's sixth stage is a 193.4km leg from Udeba to the ancient city of Cordoba. Sprinters will be have to be mindful of staying close to the leaders or risk losing out on a chance on the final sprint after a short climb near the close.
Results on Wednesday from the fifth stage of the 66th Spanish Vuelta, a 187-km ride from Sierra Nevada to Valdepenas de Jaen in the south of Spain:
1. Joaquin Rodriguez (ESP/KAT) 4h42min 54sec
2. Wout Poels (NED/VAC) at 0:04sec
3. Daniel Moreno (ESP/KAT) 0:05.
4. Bauke Mollema (NED/RAB) 0:07.
5. Michele Scarponi (ITA/LAM) 0:07.
6. Haimar Zubeldia (ESP/RSH) 0:07.
7. Jakob Diemer Fuglsang (DEN/LEO) 0:07.
8. Nicolas Roche (IRL/ALM) 0:07.
9. Jurgen Van den Broeck (BEL/OLO) 0:07.
10. Fredrik Kessiakoff (SWE/AST) 0:07.
11. Vincenzo Nibali (ITA/LIQ) 0:11.
12. Sergio Pardilla (ESP/MOV) 0:11.
13. Mikel Nieve (ESP/EUS) 0:11.
14. Denis Menchov (RUS/GEO) 0:11.
15. Jan Bakelants (BEL/OLO) 0:11.
16. Luis Leon Sanchez (ESP/RAB) 0:11.
17. Steven Kruijswijk (NED/RAB) 0:17.
18. Chris Anker Srensen (DEN/SAX) 0:20.
19. Janez Brajkovic (SLO/RSH) 0:20.
20. Bradley Wiggins (GBR/SKY) 0:20.
Overall Standings (After 5 of 21 stages)
1. Sylvain Chavanel (FRA/QST) 18h02min 34sec
2. Daniel Moreno (ESP/KAT) at 0:09.
3. Joaquin Rodriguez (ESP/KAT) 0:23.
4. Jakob Diemer Fuglsang (DEN/LEO) 0:25.
5. Vincenzo Nibali (ITA/LIQ) 0:33.
6. Fredrik Kessiakoff (SWE/AST) 0:35.
7. Maxime Monfort (BEL/LEO) 0:38.
8. Jurgen Van den Broeck (BEL/OLO) 0:43.
9. Sergio Pardilla (ESP/MOV) 0:43.
10. Marzio Bruseghin (ITA/MOV) 0:52.
11. Kevin Seeldraeyers (BEL/QST) 0:53.
12. Haimar Zubeldia (ESP/RSH) 0:54.
13. Bauke Mollema (NED/RAB) 0:55.
14. Mikel Nieve (ESP/EUS) 0:57.
15. Michele Scarponi (ITA/LAM) 0:57.
16. Kanstantsin Siutsou (BLR/HTC) 0:58.
17. Luis Leon Sanchez (ESP/RAB) 0:59.
18. Daniel Martin (IRL/GRM) 1:04.
19. Janez Brajkovic (SLO/RSH) 1:07.
20. Chris Froome (GBR/SKY) 1:20.