NEW YORK -- Aaron Heilman threw one pitch here and the next one there, working in and out with movement and location, showing the kind of quality the New York Mets have always hoped for from the lanky right-hander.
He got hitting help from Mike Piazza, who broke out of a slump with two doubles and three RBI to send the Mets to their fifth straight victory after an 0-5 start.
"It was just an outstanding job by Aaron," manager Willie Randolph said. "He kept the ball down. He had location and movement. He threw a great game. When the ball moves like that, you get lots of groundballs."
And just one hit -- Luis Castillo's infield single in the fourth.
Heilman (1-1) dominated the Marlins in a dramatic turnaround, by far the best performance of his brief career. Drafted 18th overall in 2001 out of Notre Dame, Heilman has been a big disappointment for the Mets -- he came in with a 3-11 record in 20 major league outings.
In fact, he was supposed to begin the season in the minors, but he was called up because right-hander Kris Benson is on the disabled list.
Now, Heilman said, the trick is to do it again.
"I've got to figure out another way to get these guys out in five days," he said.
That has never been a simple matter for Heilman, who has struggled with inconsistency throughout his career.
Friday's performance followed an adjustment in his delivery.
"I was hiding the ball better and had a little more deception," Heilman said.
He struck out seven, walked three and retired his first nine batters.
"He had a good night. He stopped our potent offense," Florida manager Jack McKeon said, sounding a little sarcastic.
As good as Heilman's performance was, the Mets had to be just as encouraged by Piazza. He doubled twice off Beckett, who did not allow a run in his first two starts this season.
"I felt a little better," said Piazza, who batted just .148 with one RBI in the first nine games. "There was some tension in the first few games. That's why this game is so hard. If it was easy, it wouldn't be a challenge. You have to trust yourself and trust your swing."
Piazza drove in two runs on a fifth-inning double after Marlins first baseman Carlos Delgado made two errors on one play.
Miguel Cairo walked with one out and Delgado booted Carlos Beltran's grounder and then threw the ball over Beckett's head as the pitcher covered first for a second error, allowing Cairo to reach third base. Piazza followed with a double into the left-field corner, scoring both runs. One run was earned, the first earned run against Beckett (2-1) in 20 innings this season.
Beckett's scoreless string of 15 innings ended when the Mets nicked him for a pair of unearned runs in the first.
Jose Reyes led off with a double and Cairo was safe when Beckett booted his sacrifice bunt for an error. Reyes scored on an RBI groundout by Piazza, and Cairo came home on a two-out single by Doug Mientkiewicz.
Heilman was nearly untouchable.
Florida did not have a runner until Juan Pierre was hit by a pitch leading off the fourth. Plate umpire Brian Runge first ordered Pierre back to the plate because he was hit as he squared to bunt, but then reversed the call after huddling with the other umpires.
- Mets LF Cliff Floyd (strained rib muscle) missed his third straight start and 2B Kaz Matsui (scratched cornea) did not start for the second straight game.
- Delgado, who rejected the Mets' free-agent offer, was booed by the crowd of 49,448 all night.
- The Mets marked Jackie Robinson Night with a video tribute to the Hall of Famer, who became the first black player in the major leagues on April 15, 1947.