DENVER (AP) -- The Colorado Rockies were in need of some good starting pitching and a few key hits to end nearly two weeks of frustration.
They got both.
Colorado hadn't won since rallying for a 12-10 victory over San Diego on Opening Day, losing games in nearly every imaginable way. The Rockies finally broke through by getting a solid outing from Kennedy after two shaky ones, a few clutch hits and some aggressive baserunning.
"There's a lot of people who probably didn't think we'd have much of a chance at getting Jason Schmidt tonight, coming in with an eight-game losing streak hanging in your face," Rockies manager Clint Hurdle said. "But these guys shower pretty good and they show up the next day pretty good, and they're going to do that all year."
Rookie Clint Barmes led Colorado's offense from the No. 2 spot, reaching base four times, driving in a run with a nice push bunt, stealing two bases and tying a team record by getting hit by a pitch twice. Preston Wilson drove in two runs, rookie Chin-hui Tsao overcame some shaky moments for his first career save and the Rockies had 10 hits and five stolen bases.
It all amounted to handshakes and high-fives at the end of the night, something the Rockies hadn't experienced in some time.
"It felt good to get off that skid, get another one under our belts," said Kennedy, the first Rockies starter to win in their past 20 games -- nine this season.
Pedro Feliz homered for the second straight night for San Francisco, which couldn't overcome Colorado's four-run third inning off Schmidt and lost to the Rockies for the first time in five games this season.
Schmidt (2-1) was superb his first two starts this season but never seemed to get comfortable this time around. The two-time All-Star allowed four runs in five innings to double his total for the season and gave up eight hits, including two to Kennedy, a career .156 hitter.
"He didn't have it tonight. He struggled out there," Giants manager Felipe Alou said.
Kennedy (1-1) certainly had it.
With a good fastball and a big-breaking curveball and diving changeup that kept the Giants guessing, Kennedy allowed just three hits in the first five innings. He gave up a run on Mike Matheny's sacrifice fly in the second inning before Feliz hit a solo homer off
him in the sixth to cut Colorado's lead to 4-2.
Kennedy was lifted in the seventh inning after giving up a two-out double to Jason Ellison that left fielder Matt Holliday misjudged. Kennedy allowed two runs and seven hits, benefiting from two key double plays, including one in the sixth inning that first baseman Todd Helton completed with a sprawling catch up the line on Aaron Miles' relay throw.
Not bad for someone who entered the game with a 13.50 ERA and a .415 average against him.
"He had the ball down much better tonight, change speeds effectively, work ahead in the count," Hurdle said. "All the things a pitcher wants to do to have an opportunity for success, he was able to do."
Colorado went up 5-2 in the sixth on Holliday's run-scoring single off Jerome Williams -- his first career relief appearance after 44 starts -- then had to survive some tense moments from Tsao in his first save opportunity.
Tsao got J.T. Snow to groundout to open the ninth inning, but Matheny followed with a double that went off right fielder
Luis Gonzalez's glove. Michael Tucker then hit a two-run homer to cut the lead to 5-4 and Omar Vizquel lined a two-out double, but Tsao got Ray Durham to pop out to end the game.
"He had three runs to play with and we shook hands afterward, so I'm real happy with the way things ended up," Hurdle said.
Schmidt has had plenty of success against the Rockies, particularly at Coors Field, where he was 4-0 in nine career appearances.
He clearly didn't have his best stuff this time around.
The right-hander hit the second batter he faced (Barmes) and the Rockies had runners on second and third in the first inning after Wilson's single -- the first hit by a right-hander in 17 at-bats against Schmidt this season.
Schmidt got out of that inning but wasn't so fortunate in the third.
He allowed consecutive singles to Kennedy and Miles and then couldn't get over in time to cover first on Barmes' perfectly placed push bunt that scored one run. Wilson followed with a two-run double to the corner in right, and Brad Hawpe made it 4-1 with a bloop single to center.
"I labored too much and made some really bad pitch selection, really got away from the game I wanted to throw," said Schmidt, who walked three and struck out five. "I should have stayed with my strengths when I should have."
Helton has reached base in all 10 games this season. ... The Rockies' five stolen bases, including a double steal by Holliday and Desi Relaford in the fifth inning, were their most since getting five against Milwaukee on Sept. 29, 2001.