Francisco Rodriguez got the final five outs for his 24th save in 29 chances as the Mets ended Philadelphia's five-game winning streak and 12-game home streak.
Lefties Santana (9-6) and Cole Hamels traded scoreless frames through the first six innings. Santana struck out six, walked three and didn't allow a hit until Placido Polanco singled with two outs in the sixth.
Hamels (7-8) had given up five hits heading into the seventh - with nine of his 11 strikeouts - before Francoeur led off with his 11th homer just over the right-center field fence.
Reliever Chad Durbin loaded the bases in the eighth, but escaped by striking out Francoeur on a high fastball.
The Phillies then took their turn to threaten in the bottom of the eighth. Jimmy Rollins and Ibanez singled, with Ibanez extending his hitting streak to 15 games. Santana made a difficult play on Polanco's sacrifice attempt to the third-base side of the mound, then fired to David Wright for a crucial force out.
Mets manager Jerry Manuel then went to Rodriguez. He walked Jayson Werth with two outs, but retired Ross Gload on a grounder to second. Rodriguez then worked a perfect ninth.
Notes: Philadelphia CF Shane Victorino (left abdominal strain) took batting practice at Citizens Bank Park, and the team is hopeful that he can begin a rehab assignment sometime next week. ... The Mets made two roster moves before the game, releasing infielder Alex Cora and optioning Jesus Feliciano to Triple-A Buffalo. They recalled outfielder Fernando Martinez and Ruben Tejada from the Bisons.