"He pleaded, begged," Mets manager Jerry Manuel said. "'I don't want to come out of this game,' he said. ... I had to give him the benefit of the doubt. It's only fair to him what he's brought to the team."
Santana, who played in the Houston farm system with Oswalt for three years, allowed eight hits in seven innings, throwing a career-high 121 pitches -- including 11 to strike out Lance Berkman in the first. Oswalt went eight innings, retiring his last 20 batters after giving up three runs in the first two innings.
"He pitched eight innings so he beat me there," Santana said.
Brian Schneider hit a two-run homer and David Wright had an RBI bloop single as the Mets beat a team with a record over .500 after winning nine of 10 against lowly Washington, Pittsburgh and Atlanta to open a 2½-game lead over Philadelphia in the NL East coming in. The Mets have gone 14-4 since being swept by Houston in a three-game series to start the month.
"Everybody's on a roll now," Santana said. "We're having fun in everything we're doing."
Ryan Church returned to New York's lineup after sitting out with post-concussion syndrome since July 5 and was met with a sustained standing ovation. Perhaps the team's best player before his second head injury in less than three months on May 20, Church beat out a grounder to deep third in the second inning for a hit and went 1-for-3.
"I was glad to just test it. It was really good to just bust it down the line," Church said of running out the hit.
Schneider then put to rest Church's pregame joking that he did not have a big bat behind him for protection by homering to right for a 3-0 lead. It was Schneider's third homer in his last five starts.
"Schneider, every year, starts to turn it on at the end and that's key for us," Church said.
That mistake by Oswalt -- and a wild pitch that set up Wright's RBI single in the first -- was all the Mets would need with Santana (12-7) on the mound.
The ace, let down by the Mets' bullpen on several occasions this season, won his third straight start and fifth consecutive decision.
He was not as sharp as he was in pitching his first shutout as a member of the Mets on Aug. 17. But he was unhittable with runners in scoring position.
"I think what he did tonight that was different from Pittsburgh was when he got 0-2 he went out of the strike zone so bad they could not swing at them, and when he came back they fouled them off," Manuel said.
The Astros twice had runners on second and third but a resilient Santana shut down Houston, the second time knocking down a sharp comebacker by Berkman with his glove and recovering to make the throw and end the fifth.
"You've got to get hits in key situations, the clutch hits. We've been scratching the last few days," Astros manager Cecil Cooper said.
Heilman pitched a perfect eighth and Ayala, acquired on Sunday from Washington, earned his first save of the season with a 1-2-3 inning.
"Might see more of that as long as we're seeing more of those types of results," Manuel said of using Heilman and Ayala in the eighth and ninth.
- In honor of Fiesta Latina, the Mets home whites had "Los Mets" written in script across the front.
- 2B Luis Castillo (strained hip flexor) will be activated by New York on Saturday.
- With his second-inning single, 3B Geoff Blum enacted a clause in his contract that ensures he'll return to Houston for 2009. He needed 250 plate appearances to get the guarantee.
- The Astros activated INF Jose Castillo after claiming him off outright waivers from San Francisco.
- After the game, the Mets said RHP Orlando Hernandez, who had been out since having foot surgery Oct. 18, will have an operation on his big toe in the next day or two, effectively ending his attempt to come back this season.