A day after the Phillies lost Roy Halladay to shoulder soreness after two innings, Hamels (8-1) allowed four runs and seven hits in eight innings to match St. Louis' Lance Lynn for the major league lead in wins.
Philadelphia won for the fifth time in six games following a season-long four-game losing streak.
David Wright went 0 for 4 and is hitless in 14 at-bats. Bobby Parnell (1-1) lost as the Mets' three-game winning streak ended.
CARDINALS 8, BRAVES 2
ATLANTA (AP) — Lance Lynn (8-1) allowed two runs and five hits in seven innings, stretching the Braves' losing streak to eight.
Atlanta is on its worst skid since losing nine straight from April 21-29, 2010. The Braves have given up seven runs or more in four straight games for the first time since five in a row from July 26-30, 2008, according to STATS LLC.
Daniel Descalso hit a two-run homer. Atlanta's Tommy Hanson (5-4) gave up six runs and eight hits in 3 1-3 innings.
MARLINS 5, NATIONALS 3
MIAMI (AP) — Giancarlo Stanton hit his 11th home run in May, one short of the Marlins' record for a month.
Stanton tied the score in the sixth with his 12th homer of the year, Logan Morrison homered and scored twice, and Hanley Ramirez had three hits and a sacrifice fly.
Struggling closer Heath Bell pitched a perfect ninth for his eighth save in 12 chances. Bell had failed to finish the ninth in his previous two outings.
Carlos Zambrano (3-3) allowed three runs and seven hits in six-plus innings. Jordan Zimmermann (3-5) hit his first career homer but couldn't hold a 3-1 lead.
CUBS 11, PADRES 7
CHICAGO (AP) — Alfonso Soriano hit a go-ahead homer and Chicago stopped its 12-game losing streak with a victory over San Diego.
The Cubs' skid was their worst since they opened the 1997 season with 14 straight losses.
Winds were blowing out at gusts up to 35 mph on a 90-degree day at Wrigley Field, and the ball was flying. There were eight home runs, including four by each team and two from San Diego's Chase Headley, and a total of 17 extra-base hits.
Chicago trailed 7-6 in the sixth inning when Soriano launched a drive off Alex Hinshaw (0-1) over the right-field bleachers onto Waveland Avenue.
Soriano had three hits and drove in three runs. Ian Stewart and Starlin Castro each homered and drove in three for the Cubs. Darwin Barney also homered and David DeJesus tripled twice.
Randy Wells (1-1) won in relief.
San Diego lost its fourth in a row. The Padres hadn't hit more than two home runs in a game all season and came into the game last in the majors with 18 overall.
GIANTS 4, DIAMONDBACKS 2
SAN FRANCISCO (AP) — Barry Zito outpitched Trevor Cahill in a matchup of former Oakland Athletics All-Stars, and Brandon Belt hit an RBI triple to help San Francisco beat Arizona.
Gregor Blanco doubled twice, drove in a run and made a pretty, game-ending catch on the warning track in right with two runners aboard. Blanco also scored on a double steal in the Giants' three-run first.
Zito (4-2) allowed two runs in seven-plus innings to win for the third time in four starts, bouncing back from a rough outing at Milwaukee. Santiago Casilla earned his 13th save in 14 chances.
Cahill (2-5), traded to the Diamondbacks in December by the rebuilding A's, is 0-3 in five starts since winning May 1 at Washington. He gave up four runs in six innings.
PIRATES 4, REDS 1
PITTSBURGH (AP) — James McDonald (4-2) scattered five hits over eight shutout innings and Pittsburgh climbed back to .500.
Pedro Alvarez, Rod Barajas and Neil Walker all had two hits apiece and knocked in a run for the Pirates (24-24), who won their season-high fourth and reached .500 for the first time since their fourth game.
Joel Hanrahan got the final out for his 12th save.
Bronson Arroyo (2-3) gave up four runs and eight hits in four innings. The Reds lost for just the second time in 10 games.
BREWERS 3, DODGERS 2
LOS ANGELES (AP) — Aramis Ramirez hit a tying homer and singled in the go-ahead run to help Milwaukee defeat Los Angeles.
Shaun Marcum (3-3) allowed one run and six hits in seven innings, struck out nine and walked two to end a two-game skid. John Axford pitched the ninth for his eighth save in nine chances.
Ramirez homered leading off the fourth in his return to the lineup after missing two games with a bruised left elbow.
The Brewers took a 3-1 lead in the sixth with two unearned runs following a blown call by first base umpire Todd Tichenor. Aaron Harang (3-3) gave up three runs — one earned — and four hits in five-plus innings.
ROCKIES 9, ASTROS 7, 1ST GAME
ROCKIES 7, ASTROS 6, 10 INNINGS, 2ND GAME
DENVER (AP) — Dexter Fowler capped a big day at the plate with a game-ending triple in the 10th inning to give Colorado a doubleheader sweep of Houston.
Fowler, who hit a leadoff homer in the first, lined a pitch from Brett Myers (0-2) past diving first baseman Carlos Lee and the ball ended up in the right-field corner as Michael Cuddyer, who singled, scored from first.
Josh Roenicke (1-0) pitched a scoreless 10th and the Rockies improved to 8-18 this month.
Fowler batted leadoff for the first time all season and he reached base nine times in 11 trips to the plate Monday, with a sacrifice bunt accounting for one of the times he didn't.
In the opener of the Astros' first doubleheader since 2006, Jordan Pacheco blooped a tiebreaking, two-run single for the Rockies after an eighth-inning error by Houston shortstop Jed Lowrie.
Matt Belisle (2-2) pitched a scoreless inning and Rafael Betancourt got three outs for his ninth save.
Fernando Rodriguez (1-5) was the loser.