SAN FRANCISCO (AP) - Bengie Molina homered among his three hits and drove in three runs, and Barry Zito pitched six strong innings in helping the San Francisco Giants beat the Cincinnati Reds 4-2 on Saturday.
Eugenio Velez also connected as the Giants won their fifth in seven games. Fred Lewis added two hits.
Zito (8-10) gave up two runs and three hits over six innings to win his third straight decision. He walked two and struck out four. Zito last won three consecutive decisions from May 23-June, 2007.
Bronson Arroyo (10-11) gave up three runs on seven hits to lose his third decision in a row.
Nationals 5, Diamondbacks 2
WASHINGTON (AP) - Garrett Mock pitched six innings for his first win of the season, Josh Willingham hit a two-run homer and the Nationals won their seventh straight game, beating Arizona.
The Nationals' seven-game run is their first since last Aug. 26-Sept. 1 and their longest since a 10-game streak from June 2-12, 2005.
Mock (1-4) pitched six innings for just the second time in eight major league starts. He allowed two runs on Mark Reynolds' homer in the fourth inning. Mock gave up five hits, walked three and struck out seven.
Sean Burnett pitched two perfect innings. Jorge Sosa pitched a 1-2-3 ninth for his first save since Aug. 6, 2006.
Brewers 12, Astros 5
HOUSTON (AP) - Prince Fielder and Mike Rivera drove in three runs apiece and the Brewers torched Houston's bullpen.
Fielder hit his 27th home run, Ryan Braun had a two-run single and Casey McGehee, Bill Hall and Felipe Lopez added RBIs for the Brewers, who finished with 14 hits.
Milwaukee led 3-0 when Houston starter Mike Hampton (7-9) left after two innings with a sprained right knee. The Astros' bullpen gave up nine runs the rest of the way and the Brewers reached their highest run total since a 14-12 win at Cleveland on June 16.
Carlos Lee hit his 300th home run and Ivan Rodriguez went 2-for-4 with two runs scored for the Astros. Marlins 6, Phillies 4
PHILADELPHIA (AP) - Cody Ross hit a go-ahead two-run homer off Cole Hamels in the sixth inning and the Marlins beat the Phillies.
The Marlins moved within five games of the NL East-leading Phillies and try to complete the three-game sweep with ace Josh Johnson on the mound Sunday.
Chris Coghlan hit a leadoff homer and Brian Sanches (2-1) pitched a scoreless inning in relief to earn the win against his former team.
Five Marlins relievers held the Phillies to one run over five innings after starter Sean West lasted four innings in his first start since July 11.
Leo Nunez allowed a run in the ninth, before finishing for his 11th save in 14 tries. Cardinals 5, Pirates 3
PITTSBURGH (AP) - Albert Pujols hit a three-run double to reach the 100 RBIs mark for the ninth consecutive time to start his career and Adam Wainwright limited Pittsburgh to one run over 6 2-3 innings, leading the Cardinals past the Pirates.
Pujols, who hits better in Pittsburgh than any other hitter, missed a chance to possibly break open the game when he grounded into a double play in the fifth with two on and none out. He made up for it an inning later with a bases-loaded double down the left-field line that made it 5-0.
Pujols is the only National League player to begin his career with nine consecutive seasons of 100 or more RBIs.
Cubs 6, Rockies 5
DENVER (AP) - Kosuke Fukudome and Derrek Lee homered, leading the Cubs past Jason Marquis and the Rockies.
The win allowed the Cubs to remain a game behind the St. Louis Cardinals in the NL Central and snapped the Rockies' 15-game winning streak over teams from that division.
Ryan Dempster (6-5) ended a four-game road skid for his first win away from Wrigley Field since April 12. He went six innings and give up nine hits. Of the five runs he surrendered, only two were earned.
Dempster also vanquished - to some degree - his demons in Denver. Dempster entered the game 0-2 at Coors Field with a 15.23 ERA in seven appearances. Padres 3, Mets 1
SAN DIEGO (AP) - Rookie Mat Latos threw six strong innings to win his fourth consecutive start and lead the Padres to a win over the Mets.
Latos (4-1) gave up one run and four hits in his fifth major-league start since being called up from Double-A San Antonio on July 18. The right-hander lowered his ERA to 2.43.
The 21-year-old Latos gave up a solo home run to Alex Cora in the first inning, then settled down and finished with seven strikeouts and three walks.
Everth Cabrera, who hit a grand slam in the ninth inning of Friday night's 6-2 win over the Mets, drew a bases-loaded walk from reliever Nelson Figueroa in the third inning to put San Diego ahead 2-1.
Braves 2, Dodgers 1, 10 innings
LOS ANGELES (AP) - Kelly Johnson hit a two-run homer in the 10th inning against Guillermo Mota and the Atlanta Braves beat the Dodgers 2-1 for their second straight extra-inning victory over the NL West leaders.
Johnson, who pinch-hit in the eighth for second baseman Diory Hernandez and remained in the game, drove a 1-1 pitch a couple of rows behind the short fence in the right-field corner for his eighth home run after a one-out walk to Adam LaRoche.
It was the fifth homer allowed this season by Mota, making his second appearance since last Tuesday's well-documented dust-up with Milwaukee slugger Prince Fielder.
Rookie Kris Medlen (3-3) pitched two hitless innings for the win, striking out four and walking one.