Josh Johnson, who was previously 7-0 against the Mets, had four runs and five hits in over five and a half innings in his first opening-day start.
Johnson got off to a disastrous start giving up a two-run homerun to Wright in the first inning.
Johan Santana was able to suppress the Marlins' offense with six superb innings of play. The Mets also got help from their bullpen which pitched three scoreless innings.
David Wright propelled the Mets' offense with a two-run homerun in the . Helping Wright were Jason Bay, Rod Barajas, and Gary Mathews Jr. with two hits each.
Much of the Mets runs came in a three-error sixth inning that resulted in four runs. Jorge Cantu had cut the Mets lead to 2-1 with an RBI in the top of the sixth.
Two errors were erred throws from relievers Clay Hansley and Dan Meyer that went past first baseman Gaby Sanchez while the final error came on a bobbled reception by Sanchez on a routine throw form shortstop Hanley Ramirez.
The Mets are now a major-league best 32-17 on opening days. The Mets played without Jose Reyes and Calros Beltran who were still in Florida and on the disabled list.