Ryan Vogelsong (5-3) gave up four runs in five innings but got his first victory in four starts and only the second for the NL West-leading Giants in 11 games
"There's two ways to get out of this thing," Vogelsong said. "Either come out and swing the bats and score a bunch of runs or throw a bunch of zeroes. We know which one happened."
Aaron Hill, a .500 career hitter against Vogelsong, singled, doubled and drove two runs for the Diamondbacks.
McCarthy (1-10) allowed five runs and 10 hits in five innings. The 10 hits matched a season high. The Giants scored three in the first and one in the second.
"They hit him hard the first two innings," Arizona manager Kirk Gibson said. "Seven hits in the first two innings, they got four runs. He settled down a bit but all in all too much."
After blowing his previous two opportunities, Sergio Romo escaped trouble in a scoreless ninth for his 21st save in 25 tries. With runners at second and third, two outs and Paul Goldschmidt coming to bat, Bochy went to the mound to make sure Romo knew what to do. Hill would be the next batter.
The choice was to go after Goldschmidt.
"It's a tough call," Bochy said. "You're going against the book a little bit."
Romo gave up a one-out, pinch-hit double to Roger Kieschnick, then Didi Gregorius beat out an infield single. The runners moved to second and third when Gerardo Parra grounded out, bringing up Goldschmidt.
The Arizona slugger hit it hard to right, where Pence tracked it down.
"He (Goldschmidt) is 4 for 0 and Hilly is 0 for 6 (against Romo)," Gibson said. "I am surprised they didn't pitch around him the whole series. ... They got away with it. `'
Romo's pitch was very hittable.
"He might have got away with that pitch, but he got him out," Bochy said, "and that's a big out for us to end this losing streak."
Pablo Sandoval singled three times with an RBI and scored a run for San Francisco.
Colvin singled in two runs in the first and drove in another with a ground out after Brandon Crawford tripled to lead off the fifth.
San Francisco first baseman Michael Morse left the game in the bottom of the fifth inning with back tightness after an awkward swing at the plate. Morse said it was nothing serious. Bochy said he'd give him Sunday off and see what happens after that.
Pence got the Giants started with a one-out single up the middle in the first. Buster Posey followed with a single, then Sandoval singled Pence home, with Posey taking third when left fielder David Peralta booted the ball. Crawford drew a two-out walk to load the bases, then Colvin's two-run double made it 3-0.
It was 4-0 after Posey's double and Morse's RBI single in the second. Arizona got two in the second on doubles by Hill, Miguel Montero and David Peralta.
Arizona got two in the fifth to make it a one-run game before Pence's homer provided a two-run cushion.
McCarthy has more RBIs (3) than wins (1). McCarthy's lone victory came on May 3 at San Diego. He also gave up 10 hits, but in seven innings, against the Dodgers on April 11.
Trailing 4-2 and with Crawford on third base after he tripled to open the fifth inning, the D-backs played their infield back, presumably satisfied to limit the damage to one run in the inning.
STAT OF THE GAME
2-14 -- D-backs' record in games started by McCarthy this year.
-- Matt Stites escaped trouble after giving up two walks and a hit in the eighth inning, and he hit 97 mph on the radar run twice in the inning, including the final batter, getting Sandoval on a routine fly to left field with the bases loaded. The D-backs wanted more velocity out of the bullpen, and Stites provides that. -- Panda likes the heat. Sandoval is hitting .350 with 11 doubles, six home runs and 33 RBIs in 49 games at Chase Field. He had three singles and drove in two runs Saturday. -- With his pinch-hit single, Cody Ross is hitting .400 in his last 14 games, going 10-for-25. The work he is doing on his swing is paying off. -- Pence's solo homer in the fifth inning was the first that landed Friday’s Front Row since the Marlins’ Giancarlo Stanton did it on Aug. 21, 2012. Pence's homer was calculated at 441 feet by ESPN Stats and Info.
Which number do you like better? Goldschmidt was 4-for-10 with three RBIs against Romo, but Romo had given up one run in his previous 22 innings at Chase Field. The Giants chose the latter, pitching to Goldschmidt with runners on second and third and two outs in the ninth inning instead of walking him (for the fourth time) to get to Hill. It worked. Goldschmidt hit a line drive to right-center field, but Pence tracked it down for the final out of the game. "It's a tough call," Bochy said. "You are going against the book a little bit. You are dealing with one of the best hitters in the game. The guy behind him is a tough hitter, too. He might have got away with that pitch, but he got him out." Gibson added: "They got away with it." Hill is 0-for-6 against Romo.