Alex Chiasson and Luke Schenn also scored for Vancouver, which had dropped four of five. The Canucks managed just 15 shots on goal in a 1-0 overtime loss at Calgary on Saturday night.
Connor Murphy scored for the Blackhawks, and Marc-Andre Fleury made 29 stops.
Playing without captain Jonathan Toews, who missed his second straight game because of a concussion, Chicago lost for the sixth time in seven games. It dropped to 5-7-5 in its last 17 games overall.
The Blackhawks trailed 2-0 before Murphy drove a long slap shot past Halak with 6:59 left. It was the defenseman’s fourth goal of the season and just his fourth point in his last 18 games.
Chicago pushed for the tying goal, but it was whistled for too many men on the ice at 16:53. Schenn then put it away with an empty-netter with 21 seconds left.
Chiasson put Vancouver in front 12:21 into the first. Taking advantage of a turnover by Blackhawks defenseman Jake McCabe, Chiasson got a pass from Justin Dowling and beat Fleury on the glove side.
It was Chiasson’s fifth goal of the season and No. 106 in his 600th career regular-season game.
Sam Lafferty had a chance to respond for Chicago, but he was unable to convert an open look right in front of the net with about three minutes left in the first.
Boeser then gave the Canucks a 2-0 lead when he redirected Quinn Hughes’ shot past Fleury 4:28 into the second. It was Boeser’s 12th goal and Hughes’ team-high 32nd assist of the season.
New Canucks general manager Patrick Allvin joined the team in Chicago. He was hired on Wednesday, becoming the 12th GM in franchise history.
Former Blackhawks forwards Eddie Olczyk, Marian Hossa and Patrick Sharp have agreed to help the team in its search for a general manager. Blackhawks CEO Danny Wirtz said Olczyk, Hossa and Sharp “are respected hockey minds who have great knowledge of the game.” Mike Forde, the executive chairman of Sportsology and a former executive with Chelsea F.C., also is advising the team on the opening.
Canucks: At the Nashville Predators on Tuesday night.
Blackhawks: Host the Minnesota Wild on Wednesday night.