John Buck drove in four runs and David Wright had three hits and scored twice to lead the Mets to a 7-3 win of the Marlins at Citi Field on Saturday.

Buck's RBI total is now at nine through the first five games - getting the job done Saturday with a pair of sacrifice flies and a two-run double.

Jonathon Niese did not factor in the decision but allowed just one earned run over six innings - his 22nd consecutive outing of at least six, the longest such streak in the majors.

Miami starter Ricky Nolasco yielded just three hits through the first five innings, but was pulled after giving up three straight hits, then a walk. Ryan Webb suffered the loss in relief - three runs (two earned) in an inning and 2/3.

With the game tied 3-3, the Mets took the lead off Webb with Daniel Murphy's RBI-triple that went deep to center. He drove in Mike Baxter, who walked then stole second, advancing the third on an errant throw from catcher Miguel Olivo. Murphy scored on an RBI single from Wright, past a drawn-in infield. Wright went from first to third on a steal of second that resulted in another Olivo throwing error, and then scored on a sac-fly from Buck.

Collin Cowgill entered the game late as a defensive replacement and smacked his second homer of the year, a solo shot in the bottom of the eighth.

Brandon Lyon got his first win as a Met with a scoreless eighth inning.

New Met Aaron Laffey will square off against Miami's 20-year Jose Fernandez - making his major league debut - in Sunday's rubber game at 1:10.