Schroeder scored on the power play for his first NHL goal.
Chris Higgins and Kevin Bieksa also scored for the Canucks (7-2-2).
Lee Stempniak scored for the Flames (3-4-2), who wrapped a three-game road trip 2-1 with the loss.
LIGHTNING-BRUINS, PPD., SNOW
BOSTON — The game between the Tampa Bay Lightning and the host Bruins was postponed because of the blizzard that dumped more than 2 feet of snow on the Boston area.
No makeup date had been scheduled yet. Originally scheduled for 1 p.m., the game was pushed back until 7 p.m. to allow the storm to pass. But public transportation was not expected to resume on Saturday, and roads were still being cleared.
COYOTES 1, SHARKS 0, SO
SAN JOSE, Calif. — Mike Smith made 33 saves through overtime and then turned aside two more shots in the shootout to carry Phoenix past San Jose.
The only offense in the entire game was provided by Phoenix's Mikkel Boedker and Radim Vrbata, who both netted shootout goals against Sharks goalie Antti Niemi.
Smith, who recorded his fourth shutout of the season, made several acrobatic saves, including one in the shootout. Smith has 21 career NHL shutouts.
Niemi stopped 21 shots before the shootout to earn his first shutout of the season and 20th in the NHL.
Smith improved to 14-19 in shootouts, and Niemi fell to 19-13.
San Jose, which has gone to a shootout in four of six games, dropped its second straight tiebreaker.
Smith, who shut out the Sharks three times last season, improved to 6-3-1 in his career against them.
SABRES 3, ISLANDERS 2
UNIONDALE, N.Y. — Ryan Miller made 41 saves, and Alexander Sulzer scored the tiebreaking goal midway through the third period for Buffalo, which earned a victory over the New York Islanders despite being outshot 43-15.
Thomas Vanek and Christian Ehrhoff added goals for the Sabres, who won their second straight game. The Islanders dropped their fourth straight.