DENVER -- Michael Cuddyer homered to extend his hitting streak to 25 games, Jhoulys Chacin pitched eight scoreless innings and the Colorado Rockies beat the slumping San Francisco Giants 4-1 on Friday night.
Wilin Rosario also went deep and Jordan Pacheco had three hits for the Rockies, who moved within three games of Arizona in the NL West.
Buster Posey homered among his three hits for the Giants, who have lost five straight and seven of their last eight.
Cuddyer's streak is the longest in the majors this season and extended his franchise record. He has reached base safely in 44 straight games, also a club record.
Cuddyer flied out to left in the first inning before connecting in the third. He worked the count to 2-0 before lacing a 79 mph cut fastball just over the scoreboard in right to give the Rockies a 3-0 lead. Rosario followed with a blast to left to make it 4-0.
Chacin (7-3) made it stand up and earned his fourth straight win with another standout performance.
The right-hander has emerged as Colorado's best pitcher in June. He came within an out of a shutout against Philadelphia on June 16 and threw seven scoreless innings in a win over Washington last week. He has thrown 15 straight scoreless innings and has allowed just two runs in his last 27 innings.
He was sharp again Friday, scattering three hits and walking three to help the Rockies snap a three-game skid. He retired 10 in a row after the Giants had first and second with one out in the fourth, then got Brandon Crawford to ground out with two on to end the seventh inning.
Giants starter Barry Zito (4-6) allowed four runs and 10 hits while striking out three in 5 1-3 innings. The veteran left-hander is 0-3 in his last five starts. His last win came against Oakland on May 30 and he is 0-5 in six road starts this season.
The defending champions have struggled to score runs during their slide. San Francisco has managed just 17 runs in its last seven games and just avoided being shut out for the seventh time this season.
The Rockies took a 1-0 lead in the first on Carlos Gonzalez's RBI double. Two innings later, Pacheco led off with a single and Cuddyer followed with his 14th home run of the season.
Two pitches later, Rosario hits his 13th.
Posey led off the ninth with his 11th home run of the year off Rex Brothers to spoil the shutout. It was the first run Brothers allowed in 32 appearances spanning 30 innings.
The Giants got the tying run to the plate but Crawford grounded out to second to end the game.
NOTES: Colorado OF Dexter Fowler (right hand) was a late scratch from the lineup. Fowler has missed the last two games and three of the last four. ... The Rockies activated closer Rafael Betancourt from the 15-day DL and optioned RHP Juan Nicasio to Triple-A Colorado Springs. ... The Giants reinstated LHP Eric Surkamp from the 60-day DL and optioned him to Triple-A Fresno. He will be added to the roster when he reports on Monday, when he will make a start, the team said. ... Giants RHP Santiago Casilla (cyst on his right knee) threw 30 pitches in a simulated game Friday.