Andy Pettitte won his fourth straight game and drove in a run, and the Houston Astros stopped a three-game losing streak with a 7-4 victory over the New York Mets on Saturday night in Houston.
Adam Everett hit a two-run homer, and Jeff Kent was 2-for-4 as the Astros ended the Mets' three-game streak.
Pettitte (4-1) went six innings and allowed four runs on six hits. He struck out eight, tying his season high set May 4 against Pittsburgh, and walked one. Pettitte also helped his own cause with an RBI single in the fifth inning.
He has won all four starts since coming off the disabled list April 29. He missed 19 games with a strained left elbow after losing his first start April 6 against San Francisco.
Octavio Dotel got three outs for his seventh save in eight chances.
James Baldwin (0-2) lasted four innings and allowed four runs on six hits in his second start with the Mets. He walked three and hit a batter, after giving up six earned runs in two innings and losing 12-8 at Arizona last Monday.
Kent's double drove in Craig Biggio from third in the first inning for a 1-0 lead. The Astros then loaded the bases and Baldwin walked Richard Hidalgo to force in a run.
CARDINALS 4, MARLINS 0: At St. Louis, Chris Carpenter allowed four hits in 7 1/3 scoreless innings, and St. Louis used a three-run fourth to beat Florida.
Albert Pujols, Jim Edmonds and Edgar Renteria drove in a run apiece in the decisive inning against Darren Oliver (2-2), and Mike Matheny also had an RBI.
Carpenter (4-1) controlled the Marlins with a sinking fastball that resulted in only one flyball out, continuing his comeback after missing all of last season following shoulder surgery. He struck out five, walked two.
Mike Lowell flied out to the left-field wall with the bases loaded against Julian Tavarez for the last out of the eighth, the Marlins' best scoring opportunity. Tavarez then got the last three outs for his second save.
PHILLIES 16, ROCKIES 5: At Denver, Bobby Abreu homered and drove in a season-high five runs, and Jimmy Rollins had four of Philadelphia's season-high 18 hits. The Phillies, who also had a season high for runs, improved to 7-1 on their 10-game road trip. They have won nine of their last 12 overall.
Rollins went 4-for-6, scored four times and drove in a run. Abreu was 3-for-3, including his 10th homer. Brett Myers (2-2) gave up four runs and five hits in six innings.
PIRATES 6, GIANTS 4: At San Francisco, Pittsburgh's Craig Wilson homered and Josh Fogg pitched five-plus strong innings for his first win of the season.
Jason Kendall drove in three runs and Jason Bay added a two-run single. Fogg (1-4) fanned five in 5 2/3 innings and allowed two earned runs on six hits.
The Giants loaded the bases against Jose Mesa with one out, but he got Marquis Grissom to ground into a game-ending double play for his 11th save.
BRAVES 11, BREWERS 6: At Milwaukee, Johnny Estrada had a career-high five hits and five RBIs to lead Atlanta over Milwaukee, but the win was overshadowed by an injury to Marcus Giles.
The second baseman broke his collarbone in a collision with center fielder Andruw Jones in the first inning while chasing a popup and will be sidelined six to eight weeks. The Braves said Giles, an All-Star last season, also suffered a mild concussion and a bruised right hand.
REDS 4, DODGERS 0: At Los Angeles, Ken Griffey Jr. hit a two-run homer and Todd Van Poppel combined with three relievers on a six-hitter, helping Cincinnati defeat Los Angeles.
EXPOS 5, DIAMONDBACKS 0: At Phoenix, Claudio Vargas scattered six hits in seven-plus scoreless innings and Montreal beat slumping Arizona for the second night in a row.
CUBS 7, PADRES 5: At San Diego, Sammy Sosa hit his 549th home run to pass Mike Schmidt and take sole possession of ninth place on the career list, leading the Cubs over San Diego.