Rodriguez finished second in the 18km time trial in Aia behind stage winner Tom Dumoulin (Giant-Alpecin).
The Dutchman completed the course in 28min 46sec, with Rodriguez's time four seconds slower. More importantly, the Spaniard's time was 13 seconds faster that Sky's Sergio Henao, who was the overnight race leader tied on the same time as Rodriguez.
"I didn't look at it as a time trial," said Rodriguez.
"I imagined myself to be in a normal stage on the attack. I took some risks in the descent but stayed fully concentrated. At the climb José Azevedo kept me informed about my advantage against Henao. I really gave everything on that climb, I was riding on the limit, but it worked.
"You can say that it is a surprise to see me performing so well in a time trial but already in the past, like in the Tour de France of 2013, I also did very well."
The Movistar pair of Ion Izagirre and Nairo Quintana finished third and fourth overall, with Orica-GreenEDGE's Simon Yates in fifth.
Stage 6: 18km time trial, Aia
1 Tom Dumoulin (NED) Giant-Alpecin 28min 46sec
2 Joaquim Rodriguez (ESP) Katusha 0:00:04
3 Ion Izagirre (ESP) Movistar 0:00:05
4 Sergio Luis Henao (COL) Sky 0:00:17
5 Benat Intxausti (ESP) Movistar 0:00:21
6 Fabio Felline (ITA) Trek Factory Racing 0:00:23
7 Nairo Quintana (COL) Movistar 0:00:30
8 Rui Costa (POR) Lampre-Merida 0:00:34
9 Rein Taaramae (EST) Astana 0:00:36
10 Michal Kwiatkowski (POL) Etixx - Quick-Step 0:00:37
1 Joaquim Rodriguez (ESP) Katusha 21hr 49min 38sec
2 Sergio Luis Henao (COL) Sky 0:00:13
3 Ion Izagirre (ESP) Movistar 0:00:29
4 Nairo Quintana (COL) Movistar 0:00:38
5 Simon Yates (GBR) Orica-GreenEDGE 0:00:46
6 Michele Scarponi (ITA) Astana 0:01:06
7 Rui Costa (POR) Lampre-Merida 0:01:14
8 Michal Kwiatkowski (POL) Etixx-Quick-Step 0:01:15
9 Ilnur Zakarin (RUS) Katusha 0:01:25
10 Thibaut Pinot (FRA) FDJ.fr 0:01:33