HOUSTON – Scott Moore homered for the second straight day and J.D. Martinez and Jose Altuve had three hits each as the Houston Astros took advantage of the first-inning ejection of Zack Greinke to get a 6-3 win over Milwaukee and break a season-long nine-game losing streak Saturday. Greinke (9-3) entered the game looking for his 10th win; instead he was gone after four pitches — ejected after spiking the ball following a close play at first base. Manager Ron Roenicke was also tossed for arguing the call and the Brewers were forced to piece together the game with six relievers. Pirates 3, Giants 1: James McDonald scattered four hits over seven innings, Mike McKenry homered and the Pittsburgh Pirates edged the San Francisco Giants. Neil Walker doubled twice and drove in a run while extending his hitting streak to 11 games and Joel Hanrahan worked the ninth to pick up his 23rd save. Nationals 4, Rockies 1: Gio Gonzalez pitched six innings of three-hit ball to earn his 12th win and Ian Desmond homered to power Washington to the victory. Gonzalez (12-3) won his fourth straight start to move into a tie with R.A. Dickey of the New York Mets for the major league lead in wins. Cardinals 3, Marlins 2: Kyle Lohse tossed seven solid innings in 106-degree heat and Tony Cruz hit a go-ahead two-run triple to help St. Louis stop Miami's three-game winning streak. Allen Craig had three hits and Skip Schumaker added an RBI single in the fourth for the Cardinals. Mets 3, Cubs 1: Ike Davis homered, Jordany Valdespin hit one out for the second day in a row and Dillon Gee pitched one-run ball for eight innings to help the Mets get the win. Gee (6-7) yielded seven hits, struck out four and walked none. Bobby Parnell allowed a leadoff double to Anthony Rizzo, but retired the final three batters for his second save, striking out Steve Clevenger on a 101 mph fastball to end it. Braves 6, Phillies 3: Tommy Hanson pitched effectively into the eighth, Brian McCann homered and the Braves beat the struggling Phillies. The five-time defending NL East champions are freefalling since Chase Utley returned to the lineup, losing nine of 10. D-backs 5, Dodgers 3: Trevor Cahill pitched seven solid innings to help the Diamondbacks beat the Dodgers. Cahill (7-7) gave up three runs and six hits and improved to 17-1 in his past 22 starts when Arizona scores three or more runs. Reds 6, Padres 5: Drew Stubbs and Chris Heisey homered to back Homer Bailey's solid outing, giving the Reds a win over the Padres. The Reds, who have struggled to score runs on their 12-game road trip, used home runs to get their offense going for the second straight game. — Agencies