Hamels (11-4) allowed three hits, struck out six and walked two; he allowed just one hit after the second inning and retired his final 13 batters.
Philadelphia had a season-high 20 hits. John Mayberry Jr. had three doubles and drove in a career-high four runs and Michael Martinez, filling in for injured All-Star third baseman Placido Polanco, had four hits.
Red Sox 8, Orioles 6: Marco Scutaro, Dustin Pedroia and Kevin Youkilis homered in a four-run second inning as host Boston completed a four-game sweep. Managers Terry Francona of the Red Sox and Buck Showalter of the Orioles were ejected after pitches hit or came close to their batters.
Marlins 5, Astros 4: Mike Cameron hit a tying two-run homer for his first hit with the host Marlins, triggering a four-run fourth inning.
Tigers 2, Royals 1: In Kansas City, Mo., Justin Verlander (12-4) gave up an unearned run in 72/3 innings and became the first Tigers pitcher to earn his 12th win before the All-Star break since Jack Morris in 1987.
Pirates 9, Cubs 1: Andrew McCutchen homered and drove in five runs for host Pittsburgh.
Twins 6, White Sox 3: Anthony Swarzak (2-2) allowed one run and four hits in six innings in Chicago.
Nationals 2, Rockies 0: Jordan Zimmermann took a shutout into the seventh inning in Washington.
Dodgers 4, Padres 1: Andre Ethier hit two solo homers for host Los Angeles.-- AP