PHILADELPHIA (AP) - Cole Hamels threw a five-hitter for his fifth career shutout and Ryan Howard hit a two-run homer as Philadelphia beat Atlanta 3-0 on Tuesday night to snap a seven-game losing streak against the Braves.
Hamels (12-6) struck out six and didn't walk a batter to record his 11th career complete game and his first win in three tries since signing a $144 million, six-year contract on July 25. The All-Star left-hander is 4-5 since going 8-1 in the first two months of the season.
Mike Minor (6-8) took the loss for the wild card-leading Braves, who had won eight of 10. Minor allowed three runs and seven hits in seven innings.
The Phillies scored all their runs in the first inning.
Jimmy Rollins led off with a double down the left-field line. Domonic Brown lined a double to left-center, hustling his way to second and sliding headfirst to reach safely because the ball was dropped. After an out, Howard drove an opposite-field shot out to left-center to make it 3-0.
The Braves hadn't lost to the Phillies since May 3 at Turner Field.
DIAMONDBACKS 10, PIRATES 4
PITTSBURGH (AP) - Chris Johnson homered in the eighth and ninth innings, giving him five in eight games since being acquired in a trade by Arizona.
Johnson's homer in the eighth capped a four-run rally against Jason Grilli (1-4) that put Arizona ahead 7-4. Pittsburgh had just taken a 4-3 lead with two runs in the seventh.
Miguel Montero doubled in a run in the ninth before Johnson hit a two-run homer off Chris Resop to seal the victory for Arizona, which had lost three straight.
Johnson was acquired July 27 in a trade with Houston, where had eight homers in 92 games.
The Pirates lost for the third time in four games.
Paul Goldschmidt, who doubled twice, and Stephen Drew both had three of the Diamondbacks' 15 hits. Drew homered and drove in two runs.
Brad Ziegler (5-1), who faced one batter and induced an inning-ending double play in the seventh inning, got the win.
Travis Snider had three hits for the Pirates and Andrew McCutchen, who leads the major leagues with a .372 average, had two hits and two RBIs.
MARLINS 4, METS 2
NEW YORK (AP) - Jose Reyes extended his hitting streak to a career-high 25 games with an infield single that set up Miami's big inning, and the Marlins extended New York's home losing skid to a month.
Booed again at Citi Field, Reyes beat out a trickler that helped the Marlins score four times in the fourth. The former Mets All-Star shortstop has the longest hitting string in the majors this year.
Giancarlo Stanton hit a sacrifice fly for the Marlins after being activated from the disabled list.
The Mets lost their eighth straight at home. Their previous home win came July 7 against the Cubs.
Carlos Zambrano (7-9), recently moved to the bullpen, got four outs for the win. Steve Cishek, the sixth Miami pitcher, closed for his seventh save.
Justin Ruggiano began the Miami fourth with an infield hit off Jonathon Niese (8-6). Reyes singled and Carlos Lee had an RBI single. Stanton drove in a run and John Buck hit a two-out, two-run double for a 4-0 lead.
GIANTS 4, CARDINALS 2
ST. LOUIS (AP) - Buster Posey continued his second-half tear with a three-run homer and Barry Zito pitched 6 2-3 innings of two-run ball for San Francisco.
Posey leads the major leagues with a .448 batting average and 30 RBIs since the All-Star break, including 12 in his last six games. The home run extended his hitting streak to 11 games.
Joaquin Arias drove in the Giants' other run with an RBI double. Melky Cabrera doubled for San Francisco, giving him a big league leading 152 hits.
Zito (9-8) allowed two solo home runs by Allen Craig. He gave up eight hits overall with four strikeouts and no walks. Jeremy Affeldt got the last four outs for his third save in four chances.
Cardinals starter Lance Lynn (13-5) allowed four runs and eight hits with two walks and six strikeouts in six innings.
BREWERS 3, REDS 1
MILWAUKEE (AP) - Rookie Mike Fiers took a perfect game into the seventh inning and Aramis Ramirez hit a two-run homer off Johnny Cueto to lead Milwaukee.
Fiers (6-4) retired his first 18 batters before Zack Cozart doubled to left-center leading off the seventh. He advanced to third on a fly ball and scored on Brandon Phillips' sacrifice fly.
The only other hits Fiers gave up were eighth-inning singles to Xavier Paul and Ryan Hanigan. The right-hander struck out pinch-hitter Ryan Ludwick to get out of the inning and left the field to a standing ovation.
Jim Henderson pitched a scoreless ninth for his first career save. It was Milwaukee's second consecutive win over the NL Central leaders and its fifth straight victory at home.
The Reds have lost three straight for the first time since July 2-5. They remained 3 1/2 games ahead of second-place Pittsburgh.
Fiers hasn't allowed more than two runs in any of his last nine starts, going 5-2 with a 1.03 ERA and racking up 61 strikeouts in 61 innings.
Cueto (14-6) pitched seven innings, giving up three runs and six hits while striking out nine. He was trying to become the first NL pitcher to reach 15 wins this season.