Alfonso Soriano drove in two runs and hit one of the longest homers at AT&T Park, leading the Chicago Cubs to a 5-2 win over the San Francisco Giants on Tuesday night.
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.
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.
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.