In Montreal, Don Maloney scored his 26th goal of the season on a first-period power play.
It was only the second victory for New York in their last 15 games.
New York captain Barry Beck got a rebound off the pad of Montreal goalie Richard Sevigny and passed the puck to Maloney, who made the score 1-0 at 17:55.
Rookie Chris Kontos put a rebound past Sevigny at 11:28 of the middle period, giving the Rangers a 2-0 lead.
Montreal narrowed the margin to 2-1 at 14:22 of the second when Doug Wickenheiser got his 100th NHL point on his 23rd goal.
Guy Lafleur passed the puck to Wickenheiser, who slapped a high 50-foot screen shot past goalie Glen Hanlon.
Czech forward Vaclav Nedomansky, 38, the second-oldest player in the NHL behind Chicago's Tony Esposito, gave New York a 3-1 lead at 6:02 of the final period.
Finnish defenseman Reijo Ruotsalainen brought the puck into the Montreal zone and skated around Canadiens defenseman Larry Robinson before feeding the pass to Nedomansky.
Robinson cut New York's lead to one goal, scoring an unassisted power-play goal at 15:04 of the final period.