Rodriguez wins again to lead into finale
Movistar's Vasil Kiryienka was fourth, five seconds back.
"Today it was a crazy stage," said Rodriguez. "The group kept an incredible pace, many riders had an interest in the stage and the general classification.
"I did my best because I knew I could win and, most of all, I had to: I felt strong, I wanted to keep the leader's jersey and gain as many seconds as I could before tomorrow's individual time trial."
Rodriguez takes a nine second lead over Sanchez into Sunday's concluding 18.9km time trial, which is to be held in and around the mountainous terrain of Oņati itself.
Robert Kiserlovski is third in the standings, some 26 seconds back, with Sky's Lars Petter Northaug and Lampre's Michele Scarponi fourth and fifth, a further seven seconds down.
Rodriguez believes he can win despite plenty of danger lurking.
"After today's performance, I think it will be a little easier to make the final podium," he said.
"It's not a classic race against the clock, with many downhills, so it will be hard for me to keep the head of the competition, even if obviously I'll do my best.
"Tony Martin is 56 seconds back, but let's not forget he's the ITT World Champion."