DENVER -- The Colorado Rockies got to Matt Cain early.
It wasn't enough.
Angel Pagan hit a tiebreaking two-run single in the sixth inning, Cain settled down after a shaky start and the Giants rallied from a six-run deficit to beat the Rockies for the 10th straight time, 8-6 on Thursday night.
Wilin Rosario, Todd Helton and Nolan Arenado went deep to put Colorado ahead 6-0 in the third inning, but Jhoulys Chacin couldn't hold the lead as the Rockies lost for the 16th time in the last 24 games.
"Sometimes six runs is enough," Rockies outfielder Carlos Gonzalez said. "Cain pitched terrible but Chacin pitched even worse. Just a bad game for him."
Brandon Crawford added a three-run double to help San Francisco and Marco Scutaro extended his hitting streak to 15 games.
The NL West-leading Giants also extended their mastery over the Rockies, improving to 31-9 since 2011.
Cain (3-2) struggled early, giving up homers on consecutive pitches to Helton and Arenado in the second, along with a three-run homer to Rosario an inning later.
After that, Cain found his rhythm before being pulled with an out in the seventh. He allowed one hit and a walk to the next 14 batters, which enabled his offence to rally. In 6 1-3 innings, he gave up nine hits but still moved to 3-0 this month.
"To his credit, he hung in there and pitched into the seventh inning," Rockies manager Walt Weiss said. "You've got a guy who's one of the better pitchers in the league, you've got to get to him early. You've got to be able to put him away and not hang around."
Jeremy Affeldt held the Rockies hitless in two innings of relief work before handing the ball over to closer Sergio Romo, who got two outs to earn his 13th save in 15 chances. The Rockies only had one hit after Rosario's home run.
"A six-run lead, we've got to put those games away," Weiss said. "We've got to put together a complete game on both sides of the ball."
Chacin (3-3) was solid early before the hard-throwing righty fell apart. He yielded a season-high eight runs in 5 1-3 innings to a powerful Giants lineup that came into the game hitting an NL-best .267.
With this performance, Chacin's ERA soared from 2.70 to 4.07.
Trailing by six, the Giants climbed back into the game with a five-run fourth inning. Brandon Belt brought in a run with a walk, with Crawford later adding a bases-clearing double. Cain also got into the scoring act, driving in Crawford with a single. It was Cain's second RBI of the season.
Gregor Blanco tied the game in the sixth with a sacrifice fly to centre. Pagan gave the Giants an 8-6 lead with a two-out, two-run single over the head of reliever Adam Ottavino, who was brought in for Chacin.
"I couldn't make the pitch to get out of the inning," Chacin said. "It was really tough, especially for the team. We lost the game after scoring six runs in the first three innings. It just didn't happen."
Cain struggled with his command early. He gave up three runs each in the second and third innings. Cain allowed back-to-back homers to Helton and Arenado. Helton stood at home plate to watch his two-run homer -- not so much to admire his handiwork as see if it would curve foul. It didn't and he trotted around the bases.
On the next offering from Cain, Arenado lined a 91 mph fastball into the seats in left-centre. It was his fourth homer of the season.
Rosario had the big blow in the third, hitting a three-run homer to right. Cain has allowed 13 homers this year. He gave up 21 all of last season and just nine in 2011.
"We were able to score six runs, and then Chacin, who's always a pitcher that gives us a chance to win, it just didn't happen tonight," Gonzalez said. "It was just a bad game."
Instead of accompanying the team to Toronto for a two-game series, Cain arrived a day early in Denver. His teammates gave him grief over the move, but manager Bruce Bochy insisted it made sense.
"It's the right thing to do," Bochy said.
Before the game, Colorado juggled its roster by placing left-hander Jeff Francis (groin) on the 15-day disabled and designated infielder Reid Brignac for assignment. The team also recalled infielder D.J. LeMahieu and right-hander Rob Scahill from Triple-A Colorado Springs.
LeMahieu had a pinch-hit single in the sixth.
NOTES: Arenado made a diving grab at third in the eighth to throw out INF Brett Pill. ... The Rockies lost for just the second time this season when scoring six or more runs. The other loss was 9-6 at San Francisco on April 9. ... Bochy said the plan remains to pitch struggling RHP Ryan Vogelsong on Monday. "I talked to Vogey for quite a while and he said, 'Hey, if you need me in the pen the next couple of days I'm available,"' Bochy said. "He's earned some things, including a longer leash. That's something he's earned." ... Giants LHP Madison Bumgarner (4-1) will take the mound Friday against the Rockies, who will counter with LHP Jorge De La Rosa (4-3).