Blair Betts added an empty-netter for the Flyers (5-1-1) with 38 seconds left and Brian Boucher stopped 32 shots.
Derek Roy scored on a 2-on-1 at 17 seconds of the third period for the Sabres (3-2-0).
Zherdev scored 1:14 into the second, taking a pass from Claude Giroux and sending a shot that trickled through Sabres goalie Ryan Miller's legs.
Van Riemsdyk made it 2-0 more than 6 minutes later as he beat a defender to a rebound of a shot by Matt Carle and pushed it past Miller's glove side.
Philadelphia entered the game 0 for 18 on the power play.
The Flyers play the Sabres in Buffalo on Sunday for their final preseason game, then open the regular season in Pittsburgh on Oct. 7. Buffalo begins the next day at Ottawa.
NOTES: Zherdev changed the spelling of his first name, asking the team to use a "y" at the end, rather than the "i" that was used for his first five seasons.