SAN FRANCISCO — Barry Zito and Chad Gaudin combined on a six-hitter, Buster Posey homered and the San Francisco Giants beat the San Diego Padres 5-0 Sunday to complete a three-game sweep. Zito (3-1) bounced back from the worst start of big league career to beat the Padres for the first time in nearly two years. He allowed five hits in seven innings, struck out four, walked one and did not give up run for the third time in four starts. Posey's first home run of the season was just the 11th this year for the power-starved Giants. Before the two-out, two-run drive off Eric Stults (2-2) in the fifth, Hunter Pence, Pablo Sandoval and Brandon Crawford had accounted for all of San Francisco's homers. Mets 2, Nationals 0: John Buck hit his seventh home run of the season, Dillon Gee earned his first win and the Mets beat the Nationals to take two of three games from the NL East champions. Coming off a pair of poor starts, Gee (1-3) pitched three-hit ball for 5 2-3 innings and New York finally got a strong effort from its struggling bullpen, which entered with the highest ERA in the majors at 5.47. Buck hit a drive into the second deck at Citi Field and Mike Baxter added a sacrifice fly as New York ran up Jordan Zimmermann's pitch count in dealing the right-hander his first loss of the year. Zimmermann (3-1) threw 96 pitches in five innings. He allowed two hits and three walks. Reds 10, Marlins 6: Brandon Phillips drove in the go-ahead run for the second straight day, Joey Votto homered and had three hits, and the Reds beat the Marlins for their sixth win in seven games. Todd Frazier hit a three-run double in an eight-run seventh inning for the Reds, who won three of four from the Marlins and improved to a major league-best 10-3 at home. With the score 2-2, Shin-Soo Choo drew Cincinnati's fifth walk off Alex Sanabia (2-2), who also hit Chin with a pair of pitches. Singles by Xavier Paul and Votto loaded the bases, and Phillips had an RBI single against Jon Rauch, and Paul scored when right fielder Giancarlo Stanton bobbled the ball for an error. Logan Ondrusek (1-0) struck out the side in the seventh to win in relief of Homer Bailey, who allowed two runs and seven hits in six innings with eight strikeouts and three walks. Pirates 4, Braves 2: Slumping Clint Barmes had a pair of run-scoring singles for his first two RBIs of the season, including a tiebreaking hit in the sixth inning that led the Pirates over Atlanta for their third straight win over the Braves. Brewers 4, Cubs 2: Ryan Braun hit a three-run homer in the fifth then was ejected three innings later, and the Brewers won their seventh straight. The Brewers are 18-2 over the past 20 meetings with the Cubs at Miller Park. Milwaukee improved to 9-8 after losing eight of 10 to start the year. Diamondbacks 5, Rockies 4: Didi Gregorius hit his second major league home run and singled to start a two-run rally in the ninth inning that led the Diamondbacks over Colorado and stopped the Rockies' eight-game winning streak. Phillies 7, Cardinals 3: Erik Kratz hit a three-run home run to break the game open in the eighth inning and lead the Phillies to a win over the Cardinals. Mike Adams (1-1) tossed a scoreless eighth inning to help the Phillies split the four-game series. — Agencies