Francisco Liriano (5-2) got through six erratic innings for the win.
Joaquin Arias knocked in three runs for the Giants and Hunter Pence doubled twice but San Francisco continued to struggle on the road. The defending World Series champions have lost 12 of 16 away from home.
Barry Zito (4-5) allowed eight runs and 11 hits in 4 2-3 innings as his road ERA ballooned to 11.28.
PADRES 5, BRAVES 3
SAN DIEGO -- Edinson Volquez struck out a season-high nine in seven innings, rebounding from the worst start of his career to help San Diego to a three-game sweep of NL East-leading Atlanta.
Chris Denorfia hit a two-run homer for the Padres, who swept the Braves in San Diego for the first time since May 2005. The Braves were swept for just the second time this season.
Everth Cabrera got his major leaue-leading 30th stolen base ahead of Denorfia's homer.
Volquez (5-5) held the Braves to one run and six hits. In his previous two starts, he had allowed a combined 13 earned runs and 17 hits in 7 1-3 innings.
Paul Maholm (7-5) allowed five runs, four earned, on seven hits in 5 2-3 innings for Atlanta.
REDS 2, CUBS 1
CHICAGO -- Mike Leake combined with Aroldis Chapman on a three-hitter and Todd Frazier hit a tiebreaking home run in the seventh inning against Travis Wood, leading Cincinnati to a record 12th straight victory at Wrigley Field.
Leake (6-3) allowed Nate Schierholtz's second-inning homer but won for the fourth time in five decisions. Chapman struck out two in a perfect ninth for his 17th save in 19 chances.
The previous record for consecutive wins by a visitor at Wrigley was 10.
Wood (5-5) gave up two runs and four hits in seven innings, his third loss in four decisions.
METS 5, CARDINALS 1
David Wright and Marlon Byrd also connected for the Mets, who snapped a three-game skid and improved to 2-6 in June. Duda drove in two runs, including a first-inning single that scored Daniel Murphy from first base.
With prized pitching prospect Zack Wheeler nearing his promotion to the big leagues, Gee (5-6) has done everything possible to protect his spot in the rotation. The right-hander has yielded only three earned runs over 21 innings in his past three starts -- all wins.
Gee scattered six hits in this one and and struck out seven in 6 2-3 innings. He gave up a homer to Allen Craig, his second in two days against the Mets.
Miller (7-4) gave up four runs and five hits in six innings. He struck out 10 without a walk.
David Freese went 0 for 4 for the Cardinals, ending his career-best hitting streak at 20 games -- longest in the majors this season.
BREWERS 10, MARLINS 1
Gomez also drove in three runs and scored three times. Jean Segura homered for the Brewers, who have won five of six.
Gomez and Lucroy both had bases-loaded triples. They combined to go 12 for 24 with 12 RBIs in the three-game series.
It was the largest margin of victory for Milwaukee this season, even though Ryan Braun (right thumb) missed his third consecutive game.
Pitching on three days' rest, Marlins starter Kevin Slowey (2-6) allowed six runs -- five earned -- and nine hits in five innings.
Copyright 2013 by The Associated Press
This story is from ESPN.com's automated news wire. Wire index
MORE MLB HEADLINES
- Sources: Yanks plan to block A-Rod bonuses
- Reds, C Mesoraco reach $28M, 4-year deal
- Orioles avoid arbitration with Norris, Flaherty
- Banks died after heart attack, family says