SAN FRANCISCO -- The ball left Aaron Rowand's bat and he quickly prepared himself for another fruitless result despite the strong swing. That's just the way it's been going for him these days.
Instead, this time he hit a go-ahead two-run double in the fifth inning, helping the San Francisco Giants back starter Matt Cain with enough offense in a 4-1 win over the Colorado Rockies on Wednesday night to avoid a sweep.
"Honestly, when I hit it I thought, 'There it is again.' I thought I hit it right at him," Rowand said. "Luckily I got it over his head. I was pretty happy, trust me. When it feels like there's 45 fielders out there, it's tough."
Pablo Sandoval added an RBI double and Bengie Molina singled in a run against Jeff Francis (1-2) in the sixth for San Francisco, which finally produced the big hits it has been missing on a regular basis. The Giants were held to one total run over the first two games of the series, but came through for Cain (4-4).
Troy Tulowitzki homered for Colorado, which had its season-best four-game road winning streak snapped. The Giants beat Francis for the first time in five matchups since May 2, 2007.
Cain followed up his one-hit gem against Arizona last time out with another sharp outing, winning consecutive starts for just the second time this season.
During this roll, he feels as fresh as he did when everything was working back in spring training.
"I feel like I'm getting back into that mode of being able to locate my fastball and off-speed stuff," he said.
The right-hander was still strong late, getting a 1-2-3 eighth in which he struck out Todd Helton to end the inning. Cain allowed four hits, one run, struck out five and walked three.
"We mounted little, if anything against him," Rockies manager Jim Tracy said. "Four hits and two were struck well by one guy. You are not going to win too many games if that's all you're going to get offensively."
Brian Wilson finished the 2-hour, 16-minute game with a perfect ninth to earn his 13th save in 14 opportunities. He needs one more save for career No. 100.
The Giants have been waiting to finally come through in crucial situations.
Rowand was 0 for 20 against lefties dating to May 9 before the double, just the fourth hit with runners in scoring position allowed by Francis in his four 2010 starts.
Molina ended an 0-for-21 funk that dated to his final two at-bats against Washington on May 26. Sandoval was batting .189 with runners in scoring position.
"We want to help the team, man," Molina said. "We're not trying to hurt the team. You can only take so much, your heart can only take so much. ... A lot of times when we hit, we feel like they have 24 guys on defense and we can't find a hole."
While Rowand was 6 for 11 against Francis coming in, he had struggled of late. He was dropped from the leadoff spot May 23 and has recently been in the No. 8 slot. On that one swing, he doubled his RBI total from the previous nine games in which he went 4 for 37 with a double.
Francis, back this season after missing all of 2009 recovering from shoulder surgery, got the Giants to ground into double plays in the second and third innings. He hadn't allowed a two-out hit this season until Aubrey Huff's single in the fifth.
"I've got to do better. I did it for four innings," Francis said. "They made me pay for my mistakes, that's for sure."
Rockies leadoff man Carlos Gonzalez was 0 for 13 with four strikeouts lifetime against Cain before a two-out single in the fifth.
Colorado catcher Miguel Olivo was a late scratch a day after cutting his right thumb in the fifth inning trying to block a pitch. Chris Iannetta replaced him and Tracy expected Olivo to be back in the lineup following Thursday's day off for the start of a series at Arizona on Friday night.
Colorado ace Ubaldo Jimenez earned NL Pitcher of the Month honors for May, his second such award this season. ... Rockies 2B Clint Barmes got the day off to keep him in a good frame of mind after going 3 for 8 with four RBIs in the first two games of the series. Barmes is 1 for 15 (.067) lifetime vs. Cain. ... Colorado activated LHP Franklin Morales from the 15-day DL and optioned RHP Esmil Rogers to Triple-A Colorado Springs. ... San Francisco LHP Jeremy Affeldt was unavailable again and could be headed for the DL as soon as Thursday. ... Softball star Jennie Finch held a Q&A session on "Girls' Softball Night" at the ballpark. Those fans who purchased the special ticket received a Finch bobblehead. ... New University of San Francisco coach and women's basketball icon Jennifer Azzi threw out the ceremonial first pitch. She and Finch were honored among a group of former Olympians. ... The Class-A San Jose Giants were recognized on the field before the game.