A late dig saw Movistar's Valverde rider surge past Rodriguez of Katusha on the closing straight of the 155km hilly stage through the Basque region in northern Spain.
Britain's Chris Froome (Team Sky) and Spaniard Alberto Contador (Saxo Bank) - the two race favourites - crossed the line in the same time to take third and fourth after a thrilling final climb up the Cat.1 Alto de Arrate.
Valverde took a 12-second time bonus over the line and moved into the top of the overall classification where he holds an 18-second lead over team-mate Benat Intxausti, who finished in a large chasing group six seconds off the pace.
"It's incredibly difficult to beat a rider like Rodríguez, he deserved the win as much as me, but maybe he was a little bit over-confident and I just managed to do it," Valverde said.
"Movistar have won the opening team time trial and this stage as well, we've kept the lead for the last three days, we can be more than happy with what we've achieved."
Valverde, who himself returned to competitive cycling in January this year after serving a two-year doping ban, said he was delighted to be in front, particularly considering he had not originally intended to start the race at all.
"I'll try and keep going in the lead as far as I can, but after such a great start to the race, anything we get from here on is a bonus," he said.
Contador clearly made the biggest impression on Valverde up the Arrate but Froome was identified as the major threat.
"Contador was definitely the strongest but Rodríguez and I could get back up to him every time he attacked," Valverde added.
"It (the climb) cost Froome a little bit, but with that time trial in the second week it's going to be very difficult to keep him under control."
Dropped briefly by Contador but each time able to claw his way back, Froome said that the stage had been about damage control.
"We have some really hard stages with mountains coming up, so today was not a day to push too hard," the 27-year-old said.
"I didn't see any need to sprint off to close those gaps down, I was trying to control him (Contador) at my own speed.
"It was a bit of an unknown coming here after the Tour and the Olympics, the legs are doing all right, so we should be in for a good few weeks of racing."
Rodriguez climbs to third place on GC 19 seconds down on Valverde with Froome in fourth, at 20 seconds, and Contador in fifth, at 24 seconds.
Overnight leader, Spain's Jonathan Castroviejo (Movistar), cracked on the lower slopes of the final climb to concede the red jersey to his team-mate and compatriot Valverde.
It was also a bad day for another Movistar rider, the defending champion Juan Jose Cobo, who finished 50 seconds down on the stage winner. Cobo is now 13th in the GC, one minute and six seconds behind Valverde, while Castroviejo sinks to 30th more than two minutes in arrears.
Cobo was not the only big-name rider to feel the heat: in scorching temperatures in the high 30s Russian Denis Menchov (Katusha) lost 1:52, Vacansoleil's Thomas de Gendt, third overall in the Giro, finished 2:07 down, while another Belgian, Jurgen van den Broeck (Lotto Belisol), conceded a huge 3:23.
Monday's third stage of the 67th Vuelta featured four categorised climbs including the final Cat.1 ascent of the Alto de Arrate - a climb used often in the spring stage race, the Tour of the Basque Country.
Eight riders - Spaniards Sergio Carrasco (Andalucia) and Markel Irizar (RadioShack), Belgians Philippe Gilbert (BMC) and Nico Sijmens (Cofidis), Canada's Dominique Rollin (FDJ-BigMat), Kazakhstan's Andrey Zeits (Astana), Dutchman Pim Ligthart (Vacansoleil-DCM) and France's Christophe Riblon (Ag2R-La Mondiale) - broke clear inside the opening kilometres and built up a maximum lead of four-and-a-half minutes.
Ligthart picked up maximum points over the first three categorised climbs to secure the blue polka dot king of the mountains jersey before the leaders were swept up just inside the final 10km.
Thirty-two-year-old Valverde - making his first appearance in the Vuelta since winning the race back in 2009 - made the first big move on the decisive Alto de Arrate climb before a series of pulsating attacks from Contador - making his own return to Grand Tour racing following a six-month suspension for doping - whittled down the leading group to just four riders.
Froome, the British runner-up in July's Tour de France, was distanced on numerous occasions but fought back into contention alongside his three Spanish rivals.
While Contador looked by far the strongest on the uphill slope, it was Rodriguez who seemed to have secured the stage after leading out the sprint following a final 2km flat run-in.
But the Katusha climber - second in May's Giro - stopped pedalling in the closing metres, inadvertently allowing Valverde to surge by and take the win by the narrowest of margins in a photo finish.
Froome and Contador - aware that bigger battles lie ahead - were happy to ride home in their wake and consolidate their positions on GC.
Tuesday's 160.5km stage four is the first major mountain stage of the race and features the Cat.1 Puerto de Orduna climb ahead of the gruelling summit finish at the ski station of Valdezcaray.
- Related links