An MRI found the all-star first baseman has torn cartilage in his left knee that will require surgery and sideline him for three to four weeks.
The slumping Diamondbacks scored four runs in the first off Bronson Arroyo (4-6), who lasted a season-low three innings. The Reds had gotten impressive starts during a six-game winning streak that boosted them into first.
All-star Wade Miley (10-5) gave up three runs in 5 2-3 innings for Arizona. J.J. Putz got his 17th save in 20 chances.
PHILLIES 3, DODGERS 2
LOS ANGELES (AP) — Ryan Howard homered for his first RBI of the season and Joe Blanton pitched eight effective innings for Philadelphia.
Jimmy Rollins also went deep and Jonathan Papelbon retired pinch-hitter Adam Kennedy on an easy popup with a runner at third to end it. The last-place Phillies have won three straight.
Howard, the 2006 NL MVP, missed Philadelphia's first 84 games because of the ruptured left Achilles tendon he sustained while grounding out to end last year's NL division series against St. Louis. His leadoff homer in the fourth was his first RBI in six games and 18 at-bats since coming off the disabled list.
Blanton (8-8) allowed two runs and six hits. Papelbon earned his 20th save in 22 attempts.
Nathan Eovaldi (1-6) allowed three runs and six hits in five innings for the Dodgers.
ROCKIES 5, PIRATES 4
DENVER (AP) — Dexter Fowler hit a sacrifice fly in the bottom of the ninth inning and the Rockies overcame a tying three-run homer by Pedro Alvarez to get the rain-soaked victory.
Wilin Rosario had two hits and scored the winning run for Colorado.
Neil Walker had three hits and Andrew McCutchen added two for the Pirates, who have lost three of four.
Rosario led off the ninth with a single against Jason Grilli (1-3) and moved to third on a one-out single by pinch-hitter Jason Giambi. Fowler hit a deep fly to McCutchen in centre field and Rosario slid home ahead of the throw.
Rex Brothers (5-2) got the win despite serving up Alvarez's homer following a 53-minute rain delay with one out in the top of the ninth.
CARDINALS 3, BREWERS 2
MILWAUKEE (AP) — Allen Craig hit a bloop RBI single off closer John Axford of Simcoe, Ont., to put St. Louis in front, helping the Cardinals rally for an important victory.
Milwaukee was leading 2-0 going into the ninth but Axford struggled with his control right away, eventually loading the bases with two outs and surrendering a tying, two-run single to Matt Holliday.
Axford (2-6) then was lifted after giving up the single to Craig, which dropped softly into shallow left field. Jason Motte (4-3) got the win.
St. Louis had lost three straight after getting swept by Cincinnati.
Corey Hart homered for the Brewers. Ryan Braun added an RBI double in the eighth.
MARLINS 5, NATIONALS 3
MIAMI (AP) — Hanley Ramirez hit a two-run homer, Carlos Lee drove in two runs, and Miami beat Washington to earn a split in the four-game series.
Carlos Zambrano (5-7) allowed three runs and eight hits in six innings to pick up his first win since June 3.
Heath Bell pitched a scoreless eighth, and Mike Dunn pitched the ninth to record his first career save. Dunn allowed a two-out single to Bryce Harper and walked Ryan Zimmerman before striking out Adam LaRoche to end the game.
Zimmerman reached base five times and was a triple shy of hitting for the cycle. Nationals starter Edwin Jackson (5-5) allowed four runs in five innings.
ASTROS 2, PADRES 0
SAN DIEGO (AP) — J.A. Happ and three relievers combined on a five-hitter, Scott Moore drove in two runs and Houston beat San Diego to snap a 13-game road losing streak.
Jose Altuve doubled and scored twice to help Houston end its longest skid away from home since dropping 14 straight in 1997.
Happ (7-9) allowed a double in the first to Alexi Amarista, but retired his next 12 batters. The left-hander gave up four hits over 6 1/3 innings while striking out four and walking one. Padres starter Kip Wells (1-3) yielded two runs and three hits in 4 1/3 innings.