NEW YORK - Oliver Perez struck out 10 and singled twice to start New York rallies, helping the Mets beat the Florida Marlins, 6-3, yesterday to avoid a three-game sweep.

Jose Reyes scored two runs, and Endy Chavez had two RBIs. Perez went 2 for 2 at the plate with a sacrifice bunt and scored twice.

The lefthander allowed three runs - one earned - and three hits in 52/3 innings. He walked three in his 17th career double-digit strikeout game.

Brewers 4, Cardinals 0

MILWAUKEE - Carlos Villanueva pitched four scoreless innings of relief for injured starter Chris Capuano, helping Milwaukee complete a sweep of St. Louis.

With three consecutive wins over the World Series champions, who still seem to be reeling after reliever Josh Hancock's death, Milwaukee has won nine of 11 overall and has the best record in baseball at 18-9.

The Brewers won despite getting only three innings from Capuano, who took a sharp comebacker off his right calf in the second and pitched one more inning before he was taken out of the game.

Cubs 8, Pirates 6

Cubs 7, Pirates 1

PITTSBURGH - Thanks to a rule change, Alfonso Soriano's hitting and Jason Marquis' pitching, Chicago needed only 12 innings to beat Pittsburgh twice in one day.

Marquis limited the Pirates to four hits over eight innings to win his fourth consecutive start, and Soriano homered for the second time in two days after not connecting all season, leading Chicago to a 7-1 victory.

A half hour before that game started, the Cubs completed an 8-6 win in a game suspended Tuesday night because of persistent rain with Chicago ahead, 6-5, in the middle of the seventh. Soriano led off that game with his first Cubs homer, and Cliff Floyd's two-run shot off Jonah Bayliss (2-2) keyed a four-run rally just before the rain came. Soriano was 8 for 15 in the three-game series.

The Cubs benefited from a change in suspension rules after last season. Under the old rule, the Pirates would have won, 5-2, Tuesday because they had not batted in the seventh, and the score would have reverted to the last full inning, nullifying the Cubs' four-run seventh. Now, play picks up where a game stopped.

Astros 3, Reds 1

HOUSTON - Roy Oswalt pitched eight stellar innings and rookie Hunter Pence got his first career RBI to lead Houston over Cincinnati.

Oswalt (4-2) allowed four hits and one run to help the Astros, losers of nine of their last 11 games, rebound after Tuesday's ugly 11-2 loss to the Reds.

The Houston ace allowed no hits until Adam Dunn's home run in the fifth. Dan Wheeler pitched a perfect ninth for his fourth save in five tries.

Dodgers 2, Diamondbacks 1

LOS ANGELES - Mark Hendrickson allowed three hits over six-plus innings, Juan Pierre singled home a run after an error by rookie centerfielder Chris Young, and Los Angeles beat Arizona.

Hendrickson (2-0) struck out seven, walked one and allowed only one runner as far as second base. The lefthander, removed after Orlando Hudson's leadoff single in the seventh, has allowed two earned runs over 162/3 innings in three starts since Jason Schmidt went on the disabled list.

Chin-hui Tsao and Jonathan Broxton each pitched a scoreless inning for the Dodgers. Takashi Saito allowed Eric Byrnes' RBI single in the ninth before earning his eighth save in eight chances.