Roy Halladay didn't think he was sharp warming up before the game. Boy was he wrong.

Halladay pitched a seven-hitter to help Philadelphia set a club record with its 18th victory in April as the Phillies beat the New York Mets 2-1 on Saturday.

He threw his first 18 pitches for strikes becoming the first pitcher since 1991 to accomplish that feat. Sid Fernandez was the last to do so on August 6, 1991, against Pittsburgh according to STATS LLC.

"You know I was just trying to be aggressive. I wasn't overly sharp in the bullpen as far as location, so coming out I was trying to focus more on making good pitches," Halladay said. "That was really it. Was just trying to be aggressive, trying to throw strikes and you know got some early swings for some quick outs early on. That helped."

His 107-pitch outing gave the Philadelphia's bullpen a break.

"You tend to use a lot of the guys out of the bullpen in close games. To be able to go out and feel like I gave those guys at least a little bit of rest, you know it feels good," said Halladay, who pitched his second complete game of the season. "It's what you want to do as a starter."

Since joining the Phillies last season, Halladay has completed 11 of his 39 starts.

"Roy's condition is off the chart. We all know that. I will compare him to a boxer who's going 12 rounds and he's trying for 25," Phillies manager Charlie Manuel. "He's always got something in the tank."

The NL CY Young award winner allowed one run and walked one while striking out eight to lead the Phillies to their third straight victory.

It was his seventh straight win over the Mets dating back to the 2006 season. During that stretch he has a 2.29 ERA in 55 innings pitched.

Mets starter Jonathon Niese (2-3) tried to match Halladay pitch for pitch but in the end came up short, charged with the loss after Placido Polanco's sacrifice fly in the seventh broke a 1-1 tie.

"With a guy like him," said Niese of Halladay, "You've got to minimize your mistakes."

He narrowly escaped jams in the fifth and sixth before John Mayberry Jr. tied it in the seventh with his first homer of the year, over the left field wall. Wilson Valdez then singled to right field and Dane Sardinha drew a walk.

"It was definitely a pitcher's duel," Mayberry said. "It was a full count. I'm just trying to come up with something that I can put in play. I was trying to get on base and start some momentum for us."

Halladay struck out after his bunt attempt was called foul by the home plate umpire. Shane Victorino singled to right to chase load the bases and chase Niese.

Polanco followed with a sacrifice fly to right to break the tie.

A stellar play by second baseman Daniel Murphy on a hard grounder by Jimmy Rollins ended inning. Murphy dove to his right and flipped the ball to shortstop Reyes — although replays showed Victorino beat the play.

Niese pitched 6 1-3 innings allowing two runs and six hits. He struck out three and walked two. At one point he retired 11 straight batters after giving up a one-out double to the second batter of the game, Polanco.

It was New York's third straight loss after winning six in a row.

"I don't think I've ever seen a game where a guy threw so many strikes," said Mets manager Terry Collins of Halladay's command.

The Mets left-hander ran into trouble in the fifth when he hit Ben Francisco to start the frame and then gave up a single to Mayberry Jr. Niese then got Wilson Valdez to hit into a double-play and later retired Halladay on a pop out to Murphy to end the inning.

The Phillies threatened again in the sixth on consecutive one-out singles by Polanco and Rollins. Philadelphia slugger Ryan Howard then flew out to right-center field, allowing Polanco to advance to third. Niese escaped the inning when first baseman Ike Davis chased Francisco's foul ball after a long run and made an over-the shoulder catch.

The Mets got to the Philadelphia ace in the fourth on three straight hits. Murphy singled to right and David Wright reached on an infield hit to third. Carlos Beltran's single to center scored Murphy. Halladay escaped without further damage.

NOTES: Philadelphia went 17-5 in April 1993. ... 2B Polanco extended his 10-game hitting streak with a double in the first inning. ... Philadelphia had its 136th consecutive sellout crowd at home. ... The Mets are 3-7 all-time against Halladay. New York is 0-2 this season against him. His last loss against the Mets came on July 16, 2001 while pitching for Toronto. ... Davis ended his hitting streak at 11 games. ... Halladay has 60 career complete games.

(This version CORRECTS Phillies 2, Mets 1. Corrects date to 1991 in 3rd paragraph.)