The Devils had a golden chance to score only moments earlier, but a shot by Dainius Zubrus clanged off the post.
On the ensuring rush the other way, Flyers defenseman Nicklas Grossman faked goalie Martin Brodeur, then passed to a wide-open Schenn, who fired in the game-winner from the right wing.
Ray Emery stopped 31-of-33 shots.
New Jersey had forced overtime when Michael Ryder scored a short-handed goal with 30 seconds left.
Adam Henrique also scored and Brodeur finished with 25 saves for the Devils, who fell for the fifth time in seven games.