Craig Rivet and Guillaume Latendresse also scored for Montreal, which moved five points ahead of Toronto and Ottawa for second place in the Northeast Division. Cristobal Huet stopped 25 shots for his 11th win. Arron Asham and Mike Sillinger scored for New York, losers of two straight at home. Rick DiPietro had 32 saves.
The Islanders, who enjoyed a two-day stay atop the Atlantic Division, fell to third place, two points behind the Rangers and Devils.
Asham gave New York an early lead, tipping Jason Blake's slapshot over Huet's shoulder 25 seconds into the contest.
Rivet tied the score at 5:36 when his wrist shot from the outer edge of the left circle beat DiPietro.
Latendresse put Montreal ahead with 29.8 seconds left in the period. He grabbed the rebound of Sheldon Souray's shot and tucked it inside the post.
The teams traded second period power-play goals.
Montreal moved ahead 3-1 at 6:51 when Koivu finished off Michael Ryder's centring pass.
The Islanders answered back at 8:53, 10 seconds into their third power-play chance. Sillinger, at the left post, tipped Sean Hill's shot past Huet.
Koivu connected for his 10th of the season on a backhand during a power play at 5:10 of the final period.
The Islanders had a power play for the last 1:37 of regulation, and pulled DiPietro, but Huet stopped all eight shots he faced in that time.
NOTES: The Islanders recalled forward Blake Comeau from their Bridgeport farm team on Thursday on an emergency basis. Canadiens defenceman Francis Bouillon played in his 300th NHL game. ... Montreal won three of the four meetings between the two teams last season. ... The announced attendance was 9,551, marking the fifth time in 15 home games the Islanders failed to draw at least 10,000 people. ... The Islanders are winless in their last six contests against teams from Canada (0-5-1).