PHOENIX -- Hunter Pence's three-run home run in the first inning helped the Houston Astros beat the Arizona Diamondbacks 3-2 on Sunday.
Pence drove a pitch from Rodrigo Lopez over the right-field fence for his team-high 22nd homer of the season. Michael Bourn walked to lead off the game and Jeff Keppinger followed with a single before Pence's homer.
The hit was all the Astros needed from their offense on the day. Starter J.A. Happ (6-2) held the Diamondbacks to two runs on six hits over seven innings to get the win, his third straight as an Astro after coming over in a trade with Philadelphia for pitcher Roy Oswalt. Happ struck out seven and worked out of a jam in the seventh, striking out John Hester and pinch-hitter Ryan Roberts with runners on first and second and one out.
Hester, Arizona's backup catcher, hit his second home run of the season, a solo shot in the third. Kelly Johnson added his 20th home run in the fourth.
The Diamondbacks trailed by one and had runners on first and second with two out in the fifth when Stephen Drew singled deep in the hole at second base. The runner at second, Hester, attempted to score but was easily thrown out at home.
Lopez (5-13) settled down and worked six innings, not allowing a run after the first, but still hasn't won a game since July 8. Lopez leads the majors with 33 home runs allowed and 99 earned runs allowed.
Matt Lindstrom worked a scoreless eight and Brandon Lyon converted his 13th save in 14 opportunities for the Astros, winners of 11 of their past 14 games.
*
Cardinals 4, Reds 2: ST. LOUIS -- Matt Holliday hit a go-ahead, three-run homer to back Chris Carpenter's latest dominant effort against Cincinnati, helping St. Louis take two of three from NL Central-leading Cincinnati.
*
Rockies 4, Padres 2: SAN DIEGO -- The NL West-leading Padres lost their 10th straight game, with Melvin Mora hitting a go-ahead single that sent the Rockies to a win.
*
Giants 3, Dodgers 0: LOS ANGELES -- Jonathan Sanchez pitched seven crisp innings and Juan Uribe hit a two-run homer for the second straight game, putting the Giants within one game of first place in the NL West.
The slumping Dodgers dropped their third straight series to their rivals.
*
Marlins 7, Braves 6, 10 innings: MIAMI -- Pinch-hitter Scott Cousins delivered a game-winning single in the 10th inning for his first big league hit.
The first-place Braves had overcome a 6-0 deficit.
*
Mets 18, Cubs 5: CHICAGO -- Ruben Tejada hit his first major league homer and drove in five runs, Ike Davis also connected and the Mets erupted for 21 hits and pounded the Cubs to avoid a weekend sweep.
*
Brewers 6, Phillies 2: PHILADELPHIA -- Prince Fielder hit his 30th home run, Randy Wolf was sharp against his former team and the Brewers beat the Phillies to snap a five-game losing streak.
*
Nationals 8, Pirates 1: PITTSBURGH -- Ryan Zimmerman drove in four runs, Adam Dunn homered and Jason Marquis won his second in a row.
*
Blue Jays 7, Yankees 3: NEW YORK -- Aaron Hill and Vernon Wells each hit two-run homers and the Toronto Blue Jays spoiled Alex Rodriguez's return to the New York lineup, beating the Yankees to halt their eight-game winning streak.
*
Orioles 8, Rays 7: BALTIMORE -- Corey Patterson homered and had three RBIs, and Baltimore withstood four home runs by Tampa Bay.
*
Royals 2, Tigers 1: KANSAS CITY, Mo. -- Alex Gordon homered and Kyle Davies beat Detroit for the first time in six home starts.
Joakim Soria extended his club record of 30 consecutive saves.
*
White Sox 7, Red Sox 5: BOSTON -- Gordon Beckham's bases-loaded walk with two outs pushed Chicago ahead in a four-run ninth inning that lifted Chicago to its sixth straight win.
*
Angels 7, Athletics 4: OAKLAND, Calif. -- Bobby Abreu hit a home run and drove in three runs as Los Angeles avoided its first sweep by Oakland in six years.
*
Mariners 3, Indians 0: SEATTLE -- Felix Hernandez scattered four hits over eight innings and the Mariners scored just enough runs for him.