Juan Encarnacion homered and drove in four runs to help the Florida Marlins win their rematch with Aaron Heilman by beating the New York Mets 9-2 Wednesday night in Miami.

Heilman (1-2), who pitched an improbable one-hit shutout against Florida last Friday, gave up 11 hits and left after four innings, trailing 7-0. The Mets managed just four hits one night after hitting a team-record seven homers at Philadelphia.

Josh Beckett (3-1) allowed four hits and two runs in seven innings. His ERA rose to 1.00 and Florida's team ERA climbed to 1.88, still best in the majors.

The Marlins totaled a season-high 15 hits and won their fourth in a row. They've outscored opponents 47-4 in their six home victories.

NATIONALS 2, BRAVES 0: At Washington, Zach Day allowed just three hits over seven innings and Jose Vidro hit a two-run homer.

Washington ended a two-game losing streak and improved to 3-1 against Atlanta, which has won the past 13 NL East titles. The Braves have lost six of eight — and they've scored a total of just six runs in the last five games. Day (1-1) walked four and struck out one. Horacio Ramirez (1-1) allowed just two runs in 6 2-3 in the loss.

Chad Cordero pitched the ninth for his third save.

ASTROS 6, BREWERS 1: At Houston, Adam Everett and Craig Biggio led off the first inning with back-to-back homers Wednesday night, and Roy Oswalt outpitched an ailing Ben Sheets.

Everett went 3-for-4 with two RBIs and Oswalt (3-1) worked eight strong innings for his third straight win, giving up one run on four hits. He struck out seven without walking a batter. Pitching with flulike symptoms, Sheets (1-3) lasted only six innings and couldn't prevent the Brewers from losing their sixth straight. He allowed six runs — five earned — on nine hits with seven strikeouts and one walk.

REDS 6, PIRATES 4: At Cincinnati, Wily Mo Pena hit two homers, including a tiebreaking two-run shot in the seventh inning.

Rich Aurilia also homered twice, providing more than enough for Paul Wilson (1-1) to get his first win in four starts. The right-hander gave up three runs and nine hits — eight of them singles — in seven innings.

Danny Graves got the last three outs to stay perfect in six save chances. Pittsburgh lost its fifth in a row, falling to 4-11 with a struggling rotation and the least-productive batting order in the majors. Oliver Perez lasted only four innings, giving up seven hits, four walks and three runs.

Solomon Torres (1-1) took the loss.

ROCKIES 7, PHILLIES 4: At Philadelphia, rookie Clint Barmes had four hits to help Colorado stop a 10-game road losing streak that dated to last season.

Jamey Wright (1-1) became the first Rockies right-handed starter to win since he beat San Francisco last Sept. 1, allowing one run, five hits and four walks in six innings. He didn't allow a run after Jimmy Rollins homered leading off the first.

Cory Lidle (0-2) gave up four runs and 10 hits in six-plus innings.

Brad Hawpe homered for the Rockies, who had 16 hits, and Mike Lieberthal homered for the Phillies.

CUBS 3, CARDINALS 1: At St. Louis, Carlos Zambrano (2-0) came within one out of a complete game for the Cubs, giving up five hits in 8 2/3 innings, and LaTroy Hawkins finished for his third save. Albert Pujols hit his fourth home run for the Cardinals. Jeff Suppan (1-2) allowed three runs in 6 1/3 innings in the loss.

DODGERS 3, PADRES 1: At San Diego, Jose Valentin hit a two-run triple with two outs in the 10th inning to give Los Angeles its eighth straight win. The Dodgers, who have the best record in the majors at 12-2, matched the best start in franchise history. The 1940 and '55 Dodgers, then based in Brooklyn, also opened 12-2.

DIAMONDBACKS 2, GIANTS 1: At San Francisco, Javier Vazquez pitched seven scoreless innings and Arizona handed Noah Lowry the first loss of his major league career with a victory over the Giants.