SAN FRANCISCO -- Tommy Kahnle has been trying to tell anyone who will listen how good Colorado's bullpen is, even if the numbers suggest otherwise.
The Rockies middle reliever finally has some solid proof to back his claim. On a day the National League's top scoring offense was held to one run, the timing was perfect.
"It's definitely special," said Kahnle after the Rockies' bullpen lowered its collective ERA by nearly full point to 4.20. "Our bullpen's real good, especially coming into that spot where our starter gets taken out by a freak injury. Really it's just a big spot by us."
Troy Tulowitzki drove in the game's only run with a sacrifice fly in the third inning to help lift Colorado to just its second win in six road games this season. It's also just the Rockies' third win in their last 17 games at San Francisco's waterfront ballpark.
Kahnle (2-0) allowed one baserunner in two innings. Matt Belisle, Adam Ottavino, Rex Brothers and LaTroy Hawkins pitched an inning apiece to complete the three-hitter with Hawkins finishing for his second save.
"Usually if it's a one-run game here we're going the other way on it and probably lose," said Ottavino, who pitched a perfect seventh inning for Colorado. "Today was a good day. Everybody stepped up that needed to and we were able to hold them down and keep them quiet."
Anderson left the game with a bruised left index finger after allowing a hit in three innings. He did not require X-rays and is scheduled to be re-evaluated on Sunday.
Rockies relievers picked up the slack and extended their scoreless streak to 9 2/3 innings in this series.
A day after pitcher Madison Bumgarner hit a grand slam and drove in five runs, the Giants managed only three hits and were shut out for the first time this season.
"Their bullpen did a great job," San Francisco manager Bruce Bochy said. "We pitched good. They just pitched a little better."
Cain (0-2) allowed four hits over seven innings with eight strikeouts and three walks. He is winless in his last seven starts at AT&T Park.
Charlie Blackmon, the majors' leading hitter going in, scored after leading off the third with a walk. Blackmon took second on Brandon Barnes' infield single, moved to third as part of a double steal then came home on Tulowitzki's sacrifice fly.
"At the time you're not thinking that's the run that's going to win the game, but it was a big one," Colorado manager Walt Weiss said.
Tulowitzki went hitless in three at-bats in his return to Colorado's lineup after sitting out the series opener with a sore quad. Catcher Wilin Rosario was also back after resting a sore hand on Friday.
Even at full strength, the Rockies needed a big lift from their bullpen to pull this one out.
Anderson lasted just three innings after bruising the index finger on his left hand apparently while grounding out to end the top of the fourth. Anderson took the mound to begin the bottom of the frame and threw one warmup pitch before a team trainer was summoned from the dugout.
"It felt like a firecracker went off in my glove," Anderson said. "I went out there and threw a warmup pitch and it felt like what I envision trying to throw with a foam finger feels like."
Anderson eventually walked off the field and was replaced by Kahnle.
Pablo Sandoval greeted the Rockies reliever with a double to the gap in left-center on Kahnle's first pitch after center fielder Blackmon missed on a diving attempt. After Buster Posey walked, Kahnle got Mike Morse to ground into a double play and struck out Hector Sanchez.
The Giants couldn't do much else, spoiling Cain's strongest outing of the season.
San Francisco loaded the bases with two outs in the eighth but Brothers struck out Sandoval on five pitches to end the inning.
Gonzalez went 0-for-4, ending his 10-game hitting streak. ... RHP Tyler Chatwood makes his season debut for the Rockies in the series finale on Sunday. RHP Tim Hudson (2-0) goes for San Francisco. ... Danielle Meulens, daughter of Giants hitting coach Hensley Meulens, sang the national anthem.