PITTSBURGH — Albert Pujols went 4-for-5 and homered for the second straight game to lead the St. Louis Cardinals past the Pittsburgh Pirates 6-4 Friday.
David Freese broke out of an extended slump with two hits, including a two-run homer, as St. Louis pulled into a virtual tie with the Pirates in the crowded NL Central standings.
Chris Carpenter (6-7) gave up four runs in eight innings to win his fourth straight decision for the Cardinals. Fernando Salas pitched the ninth inning to collect his 18th save.
BRAVES 6, REDS 4: At Cincinnati, Dan Uggla's first career pinch-hit home run lifted the Braves to a win over the Reds. Uggla, who missed the last two starts with a strained left calf, batted with two outs in the ninth inning for reliever Jonny Venters (5-1) and lofted a 3-2 pitch from Nick Masset (1-4) 402 feet into the right-center field seats for the go-ahead runs. Uggla's 18th homer of the season also extended his hitting streak to a career-high 13 games. Rookie Craig Kimbrel pitched the ninth for his 31st save.
PHILLIES 3, PADRES 1: At Philadelphia, Cole Hamels tossed eight dominant innings and the Phillies beat the Padres for the eighth straight time. Hamels (12-5) allowed one run and three hits, striking out 10. The All-Star lefty is tied with Atlanta's Jair Jurrjens for the most wins in the NL. Ryan Madson finished for his 16th save in 17 tries. The major league-leading Phillies (62-36) are a season-best 26 games over .500.
CUBS 4, ASTROS 2: At Chicago, Aramis Ramirez and Alfonso Soriano hit fifth-inning homers for the Cubs. Ramirez's 18th homer, a two-run shot, capped Chicago's four-run rally in the inning. Ramirez's 13 homers since June 24 are the most in the majors. Soriano started the inning with his 15th homer of the season. Cubs starter Carlos Zambrano (7-5) won for just the second time since May 26.
METS 7, MARLINS 6: At Miami, David Wright came off the disabled list swinging with two RBI doubles for New York. The five-time All-Star was activated before the game after being sidelined for two months with a back injury. Daniel Murphy also drove in two runs and Jose Reyes had two hits to keep his NL-leading average at .349. Florida's Emilio Bonifacio extended his hitting streak to 21 games.
BREWERS 4, GIANTS 2: At San Francisco, Jonathan Lucroy and Yuniesky Betancourt drove in two runs each for Milwaukee, and Shaun Marcum (9-3) pitched seven solid innings to push the Brewers back into first place in the crowded NL Central standings. Pittsburgh and St. Louis are one game back. John Axford earned his 27th save.
ROCKIES 8, DIAMONDBACKS 4: At Phoenix, Aaron Cook earned his first victory of the season, and Dexter Fowler and Mark Ellis each had three hits, two runs scored and drove in a run for Colorado. Cook (1-5) allowed four runs and eight hits for his first win since since Sept. 8, 2010. He also went 2-for-3, scoring a run and driving in another.
NATIONALS 7, DODGERS 2: At Los Angeles, John Lannan (7-6) pitched 61/3 effective innings and hit a two-run homer, and Jerry Hairston's grand slam in the ninth inning put the win away for Washington.