DENVER — Nolan Arenado hit a game-ending single with two outs in the ninth inning Saturday to lift the Colorado Rockies to a 2-1 victory over the San Francisco Giants, losers of six straight for the first time in three years.
Michael Cuddyer singled in the first inning to extend his hitting streak to 26 straight games.
Todd Helton was walked by reliever Jeremy Affeldt (1-4) with two outs in the ninth for Colorado's first baserunner since the second inning.
Josh Rutledge ran for Helton, stole second and scored when Arenado singled up the middle on a 2-2 pitch to help the Rockies return to .500 at 41-41.
Rafael Betancourt (2-3) got the win in his first appearance since May 31.
Andres Torres had three hits and Buster Posey had two hits and an RBI for the defending World Series champion Giants, who last lost six in a row from June 26 to July 2, 2010.
Cuddyer's streak is the longest in Rockies' history and in the majors this season. He has reached base safely in a franchise-record 45 straight games.
He took the drama out of it early with an RBI single up the middle in the first that gave the Rockies a 1-0 lead.
Colorado starter Jorge De La Rosa made the one-run lead stand until the sixth, when he gave up three hits, including Posey's two-out, RBI double that tied the game at 1.
De La Rosa went to the mound at the start of the seventh inning but never faced a batter. After a few warmup pitches manager Walt Weiss and trainer Keith Dugger came to the mound and checked on the lefty. After a brief conversation De La Rosa was replaced by Wilton Lopez.
The Rockies had missed a chance to extend their 1-0 lead in a mistake-filled bottom of the second. With Yorvit Torrealba on first, De La Rosa laid down a bunt. Third baseman Pablo Sandoval's throw to second went into center field and Torrealba advanced to third. Center fielder Juan Perez's throw to third got by Sandoval but Torrealba didn't score even though there was no Giants player covering home.
The oversight cost the Rockies when Torrealba was caught in a rundown on Corey Dickerson's groundout and DJ LeMahieu hit a fly to right to end the inning.
It was the last chance Colorado had against Matt Cain, who turned in his best performance of the season despite getting a no decision. He set down the last 20 batters he faced and showed his first two starts against Colorado this season were an aberration. In those games he allowed a combined eight runs and 12 hits in 11 1-3 innings.
On Saturday, he allowed just one run on three hits and struck out five in eight innings.
NOTES: Rockies OF Dexter Fowler missed his fourth straight game with a sore right hand. Weiss said he won't play Fowler during the series in case the Rockies have to put him on the 15-day DL. ... Giants RHP Santiago Casilla will make a rehab start for Class-A San Jose on Sunday. Casilla had a bone cyst removed from his knee. ... San Francisco RHP Chad Gaudin (right elbow contusion) threw a bullpen session before Saturday's game. He is on schedule to return July 6. ... Rockies SS Troy Tulowitzki (broken rib) took grounders and did some running before the game. Friday he took 10 swings off a tee but will not swing a bat again until he has a second MRI in the next week. ... Colorado RHP Edgmer Escalona (right elbow inflammation) pitch 1 1-3 innings in Triple-A Colorado Springs on Friday and could be activated from the 15-day DL on Sunday.