Bryan Shaw (1-0) tossed a scoreless eighth and J.J. Putz worked the ninth for his 30th save. Putz fanned Jimmy Rollins with the tying run on second.
The Phillies, an MLB-best 78-42, lost for the first time in Halladay’s last 11 home starts.
Tigers 7, Twins 1 - Justin Verlander allowed one run over 7 ⅔ innings to become the first 18-game winner, and Detroit breezed to an easy victory over visiting Minnesota.
Verlander (18-5) labored through a 29-pitch first inning but settled down after that, allowing seven hits in another impressive outing. He struck out eight to surpass 200 on the year, walked one, and lowered his ERA to 2.31.
Miguel Cabrera drove in three runs for the Tigers, and Ramon Santiago hit his third home run of the season, a solo shot in the sixth.
Rangers 7, Angels 3 - Michael Young had three of the Rangers’ 17 hits and drove in three runs, and visiting Texas opened its biggest AL West lead of the season with a victory over Los Angeles.
Derek Holland (11-4) yielded nine hits and fell one out shy of his fifth complete game for the Rangers, who have moved six games ahead the Angels.
Josh Hamilton homered in a three-hit performance before leaving with back spasms in Texas’ fifth straight victory.
Braves 2, Giants 1 - Rookie Randall Delgado allowed no hits through six innings in his second big-league start, and host Atlanta pulled out a win on Martin Prado’s two-out single in the 11th.
Brewers 2, Dodgers 1 - Mark Kotsay hit a tiebreaking RBI single in the ninth inning and host Milwaukee beat Los Angeles to take a seven-game lead over St. Louis - its biggest lead in the NL Central ever this late in the season.
Pirates 5, Cardinals 4 - In Pittsburgh, Garrett Jones homered to lead off the bottom of the 11th inning and lift the Pirates over St. Louis.
Jones connected on a 2-and-2 pitch from Arthur Rhodes (3-4) for his 14th home run.
White Sox 8, Indians 7 - Juan Pierre’s game-ending single in the 14th inning capped a five-hour marathon as Chicago beat visiting Cleveland.
Astros 6, Cubs 5 - Pinch hitter Brian Bogusevic hit a grand slam in the ninth inning to propel host Houston over Chicago and break a season-long seven-game losing streak.
Marlins 6, Rockies 5 - Anibal Sanchez tossed eight strong innings to win his first game in more than two months and visiting Florida held on to beat Colorado.
Athletics 8, Orioles 4 - Josh Willingham hit a home run and had two hits, Coco Crisp drove in two runs and host Oakland beat Baltimore.
Nationals 6, Reds 4 - Chien-Ming Wang won back-to-back starts for the first time in three years and Michael Morse and Ryan Zimmerman homered to lift host Washington.
Padres 6, Mets 1 - Rookie Cory Luebke pitched six strong innings to lead host San Diego over New York.
Blue Jays 13, Mariners 7 - Jose Bautista hit his major league-leading 35th home run, Colby Rasmus and Aaron Hill each drive in four runs and Toronto rallied twice in a win over host Seattle.