Alexander Edler had a goal and three assists for the Canucks, who have won two straight following an eight-game losing streak. They have also won two straight at home after dropping a franchise-record nine consecutive games as the host.
Mats Sundin had a goal and two assists, Daniel Sedin had a goal and an assist, and Steve Bernier and Henrik Sedin tallied a goal apiece in the win. Roberto Luongo made 36 saves for Vancouver.
Kris Versteeg, Adam Burish and Martin Havlat scored for Chicago, which had a three-game win streak snapped. Cristobal Huet lasted only one period, allowing three goals on nine shots. Nikolai Khabibulin came on in relief and stopped 13-of-17 shots in the loss.
Chicago suffered its first loss to a Canadian team this season, having been 11-0-0 coming into the game.
Henrik Sedin quickly extended his scoring streak to six games, giving the Canucks a 1-0 lead just 53 seconds into the game. Sundin made it 2-0 at the 3:02 mark on the power play, and Kesler's goal with an extra skater at 13:50 made it 3-0 after one period.
Bernier banged home a rebound on the backhand right in front of the net 2:08 into the second period, and Daniel Sedin made it 5-0 after a nice cross-ice pass from Sundin at the 5:41 mark, Vancouver's third power play goal of the game.
Edler's power play tally at 12:19 made it a six-goal game, but Versteeg scored on a shorthanded breakaway in the final minute to put Chicago on the board heading into the third.
Burish and Havlat tallied goals for the Blackhawks in the third, but it wasn't enough as the Canucks skated away with the victory after Kesler put Chicago away with a breakaway goal late.