SAN FRANCISCO -- There's just not much else for San Francisco Giants manager Bruce Bochy to say. Time is running out on his team.
"We were better," Bochy said of the offense. "They started to get it going. It wasn't enough though. We know that."
Jeff Keppinger had three hits and drove in two runs for the Giants, who lost their third in a row to fall a season-high six games behind Arizona, which beat Colorado 9-4, in the NL West.
"There's no other choice but to come out every day and fight our way out of it," Bochy said. "We're digging ourselves too big of a hole."
Matt Garza (7-10) lasted 6 2/3 innings in his first appearance against the Giants. He allowed two runs on nine hits, walking one and striking out six. Carlos Marmol pitched the ninth for his 31st save in 39 chances.
"You go out there and try to keep your team in the game no matter who you're facing," Garza said. "It's just grinding it out. I need to pitch better so I can keep going out there."
Ryan Vogelsong (10-5) lost his third straight start in his shortest outing since May 3. He gave up three runs on seven hits over five innings, walking two and striking out three.
"I'm not off by much," Vogelsong said. "I'm missing pitches by a little bit. I have to get it together in the next four days. There's no time to sit around moping now."
Sean Marshall recorded his 29th hold -- on his 29th birthday -- and is one shy from matching Marmol's club record in 2008.
The stagnant Giants failed to score more than three runs for the sixth consecutive contest and have scored two or fewer in 24 of their last 44 games since the All-Star break.
"They made some good pitches against him," Bochy said. "He's been getting good at bats, it just didn't happen for him tonight."
Soriano's second-inning solo shot traveled an estimated 445 feet, bouncing onto the concourse above the left-field bleachers. Only Andres Galarraga has hit one further to left field, an estimated 475 feet on Sept. 18, 2001 off Roy Oswalt.
"I felt good at home plate and put a good swing on it," Soriano said. "I knew I had hit it good. I don't know how far it went yet."
Barney and Soriano each drove in runs in the third to make it a 3-0 lead.
After Keppinger doubled home a run in the fifth to pull the Giants to 3-1, the Cubs added two more on Soto's ground rule double with the bases loaded. Only fan interference prevented the Cubs from tacking on another run.
Keppinger's double was the Giants' ninth extra-base hit in the first eight games of the homestand. He added an RBI single in the seventh.
The Giants are 10-21 since leading the Diamondbacks by four games in the division after play on July 28.
Giants RHP Brian Wilson will throw one more time before throwing off the mound. ... Castro's nine triples are the most by a Cubs player since Ivan DeJesus had 10 in 1979. ... The Cubs lead the NL with 39 home runs in August. ... LHP Madison Bumgarner pitches Wednesday for the Giants. He's reached the seventh inning in each of his past five starts. Bumgarner is 1-1 in three starts vs. the Cubs. ... RHP Rodrigo Lopez will go for the Cubs in Wednesday's series finale. He's lost his last two starts and is winless in seven starts against the Giants. ... Garza had two hits, his first career multi-hit game, and has five hits on the year. ... The Giants have scored 74 runs in August, their fewest in the month since at least 1946.