NL roundup: Hairston gets 5 hits as Dodgers beat Astros

Matt Treanor put the Dodgers ahead for good with a home run in the fourth inning that deflected off center fielder Justin Maxwell’s glove as he made a leaping attempt in left-center field.

Capuano (7-1) pitched two-hit ball over seven innings and struck out eight. The 33-year-old left-hander improved to 5-0 at home with a 1.36 ERA.

Tony Gwynn Jr. chipped in with a pair of RBI singles as the NL West leaders won for the sixth time in eight games despite missing injured regulars Matt Kemp, Mark Ellis, Juan Uribe and Juan Rivera.

Hairston went 5 for 5 with a double, scoring a run and driving in a run.

J.A. Happ (4-4) tied a career high by striking out 10. He gave up two earned runs and nine hits in 6 1-3 innings, and fell to 0-3 with a 2.82 ERA in four career starts against the Dodgers.

■ Cardinals 8, Phillies 3

ST. LOUIS — Roy Halladay gave up a grand slam to Yadier Molina in an abbreviated two-inning start before leaving with shoulder soreness, and the St. Louis Cardinals avoided a four-game sweep with a win over the Philadelphia Phillies.

■ Pirates 10, Cubs 4

PITTSBURGH — The Chicago Cubs lost their 12th straight game as Pedro Alvarez, Andrew McCutchen and Garrett Jones homered for Pittsburgh.

■ Reds 7, Rockies 5

CINCINNATI — Brandon Phillips hit a three-run homer to help the Cincinnati Reds outslug Colorado in a game that set a record for Great American Ball Park with nine home runs.

■ Giants 3, Marlins 2

MIAMI — Melky Cabrera tied a career high with four hits, including a home run, and scored all three runs for the San Francisco Giants to help Matt Cain beat Miami.

■ Mets 2, Padres 0

NEW YORK — R.A. Dickey struck out 10 and reached double digits for strikeouts in consecutive games for the first time in his career and the New York Mets held San Diego scoreless for the second straight day.