Roy Halladay struck out eight in his first National League complete game as the Philadelphia Phillies completed a sweep of the winless Houston Astros with a 2-1 victory Sunday. Halladay (2-0) scattered seven hits and retired the last nine batters he faced. Acquired from Toronto in an offseason trade, the former AL Cy Young Award winner pitched his 50th career complete game and outdueled Roy Oswalt (0-2). Houston dropped to 0-6. The two-time NL champion Phillies improved to 5-1. Jimmy Rollins led off the game with a home run. Philadelphia mustered only six hits, its first game under 10 hits this season. Halladay threw 111 pitches, including 83 for strikes, and earned his 150th career victory. He has 137 wins since 2001, tying Oswalt and the Yankees' CC Sabathia for the most in the majors. Diamondbacks 15, Pirates 6: At Phoenix, Edwin Jackson hit the first homer of his career, capping an Arizona-record 13-run burst in the fourth inning. Chris Young and Kelly Johnson also connected during the big inning that featured eight hits, including two by Jackson. Chris Snyder homered for Arizona and tied his career high with five RBIs. Young's homer was his third in four games and he drove in four runs, giving him nine RBIs for the series. Stephen Drew drove in two runs and every Diamondbacks starter scored. Jackson, a career .129 hitter entering the day, came around twice in the huge inning. Nationals 5, Mets 2: At New York, Josh Willingham wound up with a grand slam off Johan Santana after a wild sequence in the first inning to lead Washington to the victory. Willingham's drive hit the wall in left-center and was initially ruled in play. He tried to stretch his triple when the ball got away from catcher Rod Barajas and was tagged out, leaving both players sprawled across home plate. After checking the replay, the umpires ruled a home run. Willingham also had an RBI double in the third inning, helping the Nationals beat Santana (1-1) for the first time since June 9, 2007. Reds 3, Cubs 1: At Cincinnati, Mike Leake pitched into the seventh inning during his major league debut and Ramon Hernandez drove in the go-ahead run for Cincinnati with a bases-loaded walk. Marlins 6, Dodgers 5: At Miami, Jorge Cantu tied a career high with five RBIs as Florida rallied past the Los Angeles Dodgers for the second time in less than 18 hours. Rockies 4, Padres 2: At Denver, Ubaldo Jimenez pitched six effective innings and Troy Tulowitzki hit a two-run double as Colorado won the deciding game in the first series of the season between the NL West rivals. Giants 6, Braves 3: At San Francisco, Tim Lincecum struck out 10 in seven innings, Pablo Sandoval hit a two-run homer as San Francisco beat Atlanta in a game that finally started after a rain delay of 4 hours, 9 minutes. Brewers 8, Cardinals 7: At Milwaukee, Casey McGehee homered in the bottom of the ninth inning to lift Milwaukee over St. Louis after the Cardinals rallied against closer Trevor Hoffman.