NEW YORK -- This time, Jimmy Rollins let his bat do the talking.
It was the 10th homer of the season for Rollins, who finished 3-for-4 with two stolen bases. Rollins, who boasted in spring training that the Phillies were the team to beat in the NL East, again was booed loudly by the Shea Stadium crowd every time he came to the plate.
"He was kind of choked up on the bat, and took a real short swing at the ball," Phillies manager Charlie Manuel said. "The ball really jumped off the bat. That's what you call trying to back up what you say."
Philadelphia has won the first two meetings in the three-game series, taking advantage of an opportunity to make up ground on the division-leading Mets.
"I don't think it could have been a better situation," Rollins said. "Against the New York Mets, with an opportunity for us to go ahead and get the win."
Carlos Beltran homered for the Mets, who lost their season-high third straight and fourth in five games. They also lost another outfielder to injury when Endy Chavez hurt his hamstring while grounding into a crucial double play.
Shut out for six innings by starter Orlando Hernandez, the Phillies got going against Heilman (5-3) in the seventh.
Aaron Rowand drew a leadoff walk, Abraham Nunez followed with a single and Rod Barajas advanced the runners with a sacrifice. Heilman struck out pinch-hitter Pat Burrell, but Rollins lofted a 1-2 changeup over the right-field wall for a 3-2 lead.
"It was right down the middle," Heilman said. "It stayed right on the plate instead of running away."
The shot made a winner of Eaton (6-4), who stood to lose after allowing two runs and five hits in six innings. In five career starts against New York, Eaton is 5-0 with a 1.89 ERA.
Phillies reliever Geoff Geary got in trouble in the bottom of the seventh. Leadoff batter Ruben Gotay reached on a grounder back to the mound that Geary couldn't handle for an error, and David Newhan's double put runners at second and third.
First baseman Ryan Howard made a diving play on pinch-hitter Julio Franco's grounder down the line, and Gotay held at third when he probably could have scored the tying run.
"When I saw him diving it was too late already. I didn't want to take a chance," Gotay explained.
Said Mets manager Willie Randolph: "Obviously, he didn't get a good read on it. He was probably overcautious on that. With him diving and laying down he probably should have come in on that."
Jose Reyes was intentionally walked to load the bases. Chavez took Geary to a full count, then grounded the eighth pitch to Rollins at shortstop for an inning-ending double play.
Chavez pulled his hamstring running to first and had to be helped off the field. He was replaced in right field by Carlos Gomez.
It was the latest blow to New York's banged-up outfield. Right fielder Shawn Green (broken foot) and left fielder Moises Alou (strained quadriceps) are on the disabled list. Beltran just returned to the lineup Tuesday night from a bruised knee.
Chavez will have an MRI exam Thursday, and Randolph said he expected Chavez would probably wind up on the disabled list.
"I felt a pop and something went wrong in my leg," Chavez said. "I've never had anything like this before. Right now I just want to know what it's going to take to get back."
The Phillies (30-29) added a run in the eighth on Rowand's RBI single off Guillermo Mota. Antonio Alfonseca pitched the ninth for his third save and second in two nights.
Beltran led off the fourth with an opposite-field homer that bounced off the top of the wall in left -- his team-leading ninth -- to give the Mets a 1-0 lead.
New York squandered a chance for more. Carlos Delgado followed Beltran's homer with a double, and Eaton hit David Wright with a fastball up and in. After Paul Lo Duca got the runners to second and third with one out, Gotay lofted a fly ball to right field. Shane Victorino threw out Delgado at the plate to end the inning.
Victorino came into the game leading the NL with eight outfield assists.
"He's absolutely amazing. He's got a tremendous arm and he generates arm speed and the ball jumps out of his hand," Manuel said.
2B Damion Easley was initially in the lineup for the Mets, but was scratched because of right knee soreness. ... Alou is frustrated by his slow recovery. After having fluid drained from his leg this week, he said it's doubtful he'll be ready to play this weekend. ... Green did some light work in the outfield before the game and was optimistic he'll be ready to return from the DL when he's eligible Sunday. ... 2B Jose Valentin played four innings for Class-A St. Lucie and went 0-for-2. Before the game, general manager Omar Minaya said the odds were good Valentin would return in the next few games.