The BMC Racing Team controlled the pace on the 16-kilometre climb at the end of the 147.1km stage, pulling back an early breakaway and several counter-attacks.
Only Leopold König (Team NetApp-Endura), who soloed to win by seven seconds, and runner-up Janier Acevedo (Jamis-Hagens Berman) were able to distance themselves from van Garderen, who crossed the line 12 seconds after König.
"I think it was a tough day for the team, but they made life easy for me," van Garderen said after pulling on the race leader's yellow jersey for the third straight day.
"The guys controlled things from the beginning of the race, right up until the end. I only had to hit the wind in the last couple hundred meters. So they made my life so stress free. It was an incredible day."
Sunday's 129.9km stage finishes in Santa Rosa.
- Sports & Recreation
- Janier Acevedo