HOUSTON -- John Mayberry Jr. had three hits and drove in three runs as the Philadelphia Phillies defeated the Houston Astros 12-6 Friday night.
Jimmy Rollins and Domonic Brown each homered for the Phillies, who have won eight of nine games and are within 3 1/2 games of the St. Louis Cardinals in the National League Wild Card, pending the outcome of the Cardinals game against the Los Angeles Dodgers.
Ryan Howard also had two hits and drove in three runs for the Phillies, who got a hit from every starter except Carlos Ruiz.
Cole Hamels (15-6) gave up four runs (three earned) on seven hits with eight strikeouts in seven innings. Hamels tied a single-season career high with his 15th win of the season.
Brown extended the lead to 9-4 with a two-run homer in the seventh off Jose Valdez in the seventh, which landed in the second deck in right field.
Chase Utley hit an RBI double and Howard had a two-run single in the eighth of Enerio Del Rosario to extend Philadelphia's advantage to 12-4.
Houston, which is one loss away from its second straight 100-loss season, cut the margin to 12-5 after Justin Maxwell scored on a Justin De Fratus wild pitch in the eighth, and Jose Altuve scored in the ninth on an error by Kevin Frandsen to cut the deficit to 12-6.
Houston starter Edgar Gonzalez lasted only four innings, allowing five runs on six hits with two strikeouts. Gonzalez had allowed just two runs in his first two starts in the Astros totaling 10 1/3 innings.
The Phillies jumped on Gonzalez quickly, scoring four runs in a 32-pitch first inning.
Rollins led off the game with a solo home run to right, his fifth leadoff homer of the season, giving the Phillies a 1-0 lead. Juan Pierre followed with a walk and a steal before Utley hit an RBI single to up the lead to 2-0.
Howard extended the lead to 3-0 on an RBI ground-rule double and two outs later, Mayberry Jr. singled to score Howard and make it 4-0.
Houston cut the lead to 4-1 on an error by Rollins, scoring Jose Altuve, who had singled.
Hamels got out of trouble in the second after the Astros worked the bases loaded with two outs, inducing a flyout to center field by Brandon Barnes to end the inning.
Frandsen upped the lead to 5-1 in the fourth with an RBI single, scoring Mayberry Jr. Houston answered in the bottom of the inning with a two-run homer by Matt Downs, scoring Matt Dominguez and cutting the lead to 5-3.
Philadelphia added two more in the fifth, with Mayberry plating Utley and Carlos Ruiz on an infield single that hit off pitcher Fernando Rodriguez and into shallow right field, but Maxwell trimmed the lead to 7-4 with a solo home run off the left field foul pole in the bottom of the inning.
Notes: Rollins stole his 400th career base Thursday night against the Astros. He needs 12 more to tie Hall of Famer Ed Delahanty for second place in Phillies history. ... Rollins' leadoff homer was the 42nd of his career. He needs two more to tie Brady Anderson for fourth place all time. ... Hamels had thrown 100 or more pitches in 14 consecutive starts entering Friday's game. ... Former Houston Astro Jeff Kent, who is on the cast for the upcoming season of the reality TV show "Survivor," was on hand to throw out the first pitch. Kent's son, Kayedin, threw out the first pitch for Jeff, who was recovering from injuries sustained in a dirt bike accident.