DENVER -- Things started to look up for the Colorado Rockies about the time they saw Matt Cain grab his windbreaker and call it a night.
"Very much," said Yorvit Torrealba, whose three-run double off left fielder Todd Linden's glove capped a five-run eighth inning that rallied the Rockies to a 5-3 win over the San Francisco Giants on Tuesday night.
Colorado managed just two singles off Cain, whose seven shutout innings dropped his ERA to 1.80. He has limited opponents to a .125 batting average (8-for-64) but he's still looking for his first win after watching his bullpen blow a 3-0 lead at Coors Field.
"We had the game until the eighth," Giants manager Bruce Bochy said. "We couldn't make the plays. The ball had eyes in that inning and we couldn't get to it. This one was tough."
Steve Finley's homer off Vinnie Chulk leading off the eighth snapped Colorado's 22-inning scoreless streak and his own 1-for-21 skid.
"The odds were starting to get in my favor," Finley cracked. "Sometimes good things happen like that and it just kind of ramped everything up and we took off from there."
Not before Willy Taveras, who reached on an infield single, got picked off, an out that loomed large when Garrett Atkins hit a two-out single.
"We almost let it slip away from us when Willy got picked off there," Finley said. "But it was just an accident. That's going to happen once in a blue moon with him in that situation. But we got the momentum back and kept it rolling that inning."
Jonathan Sanchez relieved and walked Todd Helton, putting runners at first and second and bringing on the right-handed Kevin Correia (0-1), who couldn't handle Matt Holliday's comebacker that loaded the bases.
"I didn't have a good grip of it," Correia said. "I grabbed it and fumbled it in my hand. If I throw it away the game is tied. I thought I could get the next guy out."
But Brad Hawpe drew a walk from Correia, forcing in a run to make it 3-2, and Torrealba doubled off the outstretched glove of a sprinting Linden, who had pinch run for Barry Bonds in the top of the inning.
"I thought I was going to make the play," Linden said. "The wall wasn't a distraction. I figured I'd hit the wall regardless so I figured I was going to make the play. It wasn't in my glove. It was never in my glove. It was off the end of the glove."
Correia made the pitch he wanted to, a fastball that handcuffed Torrealba.
"But Torrealba just hit it just good enough," Correia said. "I didn't think it was hit that deep. It seemed like he popped it up and it kept carrying."
Hey, Torrealba said, he'll take lucky any day.
"I thought it was going to go foul," he said. "It hit it off the end of the bat a little bit. I didn't hit it good."
Just good enough.
"I'm a little happier because it was against the Giants," added Torrealba, who played for San Francisco from 2001-05.
Ramon Ramirez (1-0) pitched a scoreless eighth for the win, and Brian Fuentes had a perfect ninth for his third save in three chances.
Rockies rookie right-hander Jason Hirsh allowed three earned runs and six hits in seven innings in his first start at Coors Field. He struck out five and all three of the walks he issued were to Bonds, one of which was intentional.
Cain was rained out of his scheduled start Sunday in Pittsburgh, so he was pitching on seven days' rest. In his previous start, he took a no-hitter into the seventh inning against San Diego but gave up a leadoff double to Khalil Greene in a 1-0 loss.
He didn't give up a hit until Taveras bounced a hard single past diving first baseman Rich Aurilia with two outs in the fifth on a play that a fielder with a glove on his left hand might have had a better chance of stopping. The only other hit he allowed was a single to Helton in the sixth. He walked three, hit a batter and struck out seven.
"I got the game to the bullpen," Cain said. "I didn't get a win. We are in this together. There will be times they pick me up. Tonight they had a little bit of bad luck. "The bullpen's job is to preserve leads. I didn't fight coming out."
Ray Durham's 11-game hitting streak ended with an 0-for-4 night. ... Finley's homer also snapped an 0-for-14 stretch by Colorado's pinch hitters. ... This was Bonds' first three-walk game after drawing six of them last year.