Brandon Crawford went 2-for-4 with a three-run double and two runs scored as the San Francisco Giants edged the Colorado Rockies, 8-6, in the opener of a four-game set at Coors Field.
Angel Pagan added two hits and a pair of RBI, while Brandon Belt, Gregor Blanco and Matt Cain each drove in a run for the Giants, who have won four of their last six games.
"It was just one of those games where we went out there with a plan," said Belt. "We were looking for a pitch that we could drive and we didn't give in."
Cain (3-2) was charged with all six runs on eight hits -- three homers -- while striking out six over 6 1/3 innings to earn his third consecutive win. Sergio Romo recorded the final two outs of the nine to earn his 13th save of the season.
Wilin Rosario went 2-for-4 with a three-run homer and Todd Helton added a two-run shot for the Rockies, who have dropped seven of their last nine games.
Jhoulys Chacin (3-3) was charged with the loss after allowing eight runs on nine hits over 5 1/3 innings.
"When you have a six-run lead you have to put those away," said Colorado manager Walt Weiss. "We have to put together a complete game on both sides of the ball."
Cain struggled early, giving up three runs in both the second and third innings, but settled in after that and shut the Rockies down.
Helton and Nolan Arenado hit back-to-back homers in the second inning. Rosario singled to put one on with one out and Helton followed with a homer to right field to give Colorado a 2-0 lead. Arenado then crushed a solo shot to left-center field to give the hosts a three-run edge.
Rosario's three-run blast in the third made it 6-0. Carlos Gonzalez worked a leadoff walk and Troy Tulowitzki followed with an infield single to put two on for Rosario, who deposited his eighth homer of the season into the seats in right field.
Cain, though, retired 13 of the next 15 hitters he faced before he was replaced by Jeremy Affeldt with one out in the seventh.
San Francisco got right back in the game with a five-run fourth. Belt worked a bases-loaded walk before Crawford cleared the bags with a double. Cain helped his own cause with an RBI single to left to score Crawford.
The Giants took the lead in the sixth inning after plating three runs. With runners on the corner, Blanco lifted a sacrifice fly to center to score Hunter Pence. Crawford followed with a base hit and Cain's sacrifice bunt moved the runners to second and third. Pagan followed with a single to center to score Belt and Crawford.
San Francisco is 18-0 when leading after eight innings this season ... Giants second baseman Marco Scutaro went 2-for-5 and extended his hitting streak to 15 games, the longest active streak in the majors ... Cain hasn't lost since April 18 against the Milwaukee Brewers ... Earlier on Thursday, the Rockies recalled infielder DJ LeMahieu and right-handed pitcher Rob Scahill from Triple-A Colorado Springs. Additionally, Colorado placed left-handed pitcher Jeff Francis on the 15-day disabled list with a left groin strain and designated infielder Reid Brignac for assignment ... LeMahieu had a pinch-hit single and Scahill gave up one hit over 2 1/3 scoreless innings in relief.