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
NEW YORK (AP) — 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
CINCINNATI (AP) — 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
PITTSBURGH (AP) — 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.
Barmes began the day with an .093 batting average and was in an 0-for-14 slide.
Kris Medlen (1-2) lost for first time in 29 regular-season start in which he was given a lead. He allowed three runs and six hits in six innings with six strikeouts and one walk.
Justin Wilson (1-0) got his first major league win by giving up one hit in 1 2-3 scoreless innings.
BREWERS 4, CUBS 2
MILWAUKEE (AP) — 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.
Wily Peralta (1-1) pitched 6 2-3 innings for Milwaukee, giving up two runs and five hits.
Scott Feldman (0-3) gave up four runs on three hits in five innings and made an error before Braun's homer.
DIAMONDBACKS 5, ROCKIES 4
DENVER (AP) — 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.
Gregorius, who homered Thursday at Yankee Stadium on the first pitch he saw with the Diamondbacks, started a comeback from a 3-0 deficit when he homered against Juan Nicasio leading off the fifth.
Colorado led 4-3 when Gregorius singled leading off the ninth against Wilton Lopez (0-1). A.J. Pollock doubled over third baseman Jonathan Herrera, and pinch-hitter Alfredo Marte grounded out to third, driving in the tying run. Gerardo Parra followed with a sacrifice fly to deep centre.
Heath Bell (2-0) pitched a scoreless eighth.
PHILLIES 7, CARDINALS 3
PHILADELPHIA (AP) — 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. The Phillies snapped a 3-3 tie with a four-run eighth that put the game away.
Michael Young extended his hitting streak to 12 games with an infield single off reliever Mitchell Boggs (0-2). Dom Brown singled to put runners on the corners with one out. Ben Revere made it 4-3 on a go-ahead single up the middle.
Kratz then hit the first pitch deep into the left-field seats for a three-run homer and a 7-3 lead.