Schaefer snapped a 1-1 tie 86 seconds into the second when he tipped defenseman Karel Rachunek's point shot past goaltender Mike Dunham for his eighth goal of the season and first in 10 games.
Spezza added insurance midway through the period, hitting the left goalpost on a rebound attempt before reaching over Dunham and sliding the puck barely over the goal line.
Patrick Lalime did the rest, stopping 24 shots en route to his second win since Nov. 25. He has played only four of the last nine games, mostly because of a recent bout with the flu.
Curtis Leschyshyn scored his first point of the season for the Senators.
The Rangers got a goal from Darius Kasparaitis while losing for the sixth time in nine games (3-6-0).