Jannik Hansen chipped in with a goal and assist, while Ryan Miller made 26 saves for the Canucks (8-7-6), who were coming off a dismal 1-4-2 road trip and entered play with just four wins over their last 16 games.
Alex Burrows scored into an empty net late to seal it.
Jonathan Toews had a goal and an assist for the Blackhawks (11-8-2), while Ryan Garbutt and Artem Anisimov also scored. Corey Crawford stopped 14 shots in taking the loss.
Down 3-2 through 40 minutes, Chicago tied it up at 12:20 of the third when Anisimov swatted a loose puck home for his ninth of the season. Blackhawks forward Patrick Kane picked up an assist to stretch his point streak to 16 games (10 goals, 16 assists).
But the Canucks retook the lead with 5:25 left in regulation when Daniel Sedin beat Crawford off a pass from Henrik Sedin for his ninth on the shortside to make it 4-3 before tipping home another feed from his twin brother just 2:01 later for the hat trick.
Burrows added his fifth into an empty net with under a minute to go.
Tied 2-2 after the first period, Vancouver grabbed the lead at 7:22 of the second on the power play. Henrik Sedin stole the puck from Chicago defenceman Duncan Keith and fed Daniel Sedin, who beat Crawford with a quick shot under the pads for his eighth.
The Blackhawks were playing their third game in four nights following Friday’s 2-1 overtime loss to the Flames in Calgary, but had plenty of energy and came close to tying it on a couple of occasions later in the period, including back-to-back shots from Toews that Miller turned aside.
Chicago opened the scoring on the power play at 6:17 of the opening period on the first shot of the game when Toews took a pass off the boards and roofed the puck shortside on Miller for his seventh.
Vancouver got that one back on a 5-on-3 man advantage at 9:32 when Henrik Sedin gathered a cross-ice feed from Daniel Sedin and fired a shot that Crawford could only get a piece of for his sixth.
Hansen, who took a shot up high earlier in the first and briefly went to the locker-room, gave the Canucks their first lead with 4:42 left in the period from the lip of the crease for his sixth.
But the Blackhawks responded just 52 seconds later when Toews found Garbutt, who buried his first past Miller after the Vancouver goalie got caught up with one of his defenders in the crease.
Miller shook that one off and made a great save on a Kane breakaway moments later to keep things tied through 20 minutes.
Notes: Daniel Sedin’s assist in the first period was the 900th point of his career. … Vancouver has allowed at least one power-play goal in eight of its last nine games. … The Canucks have scored on the man advantage in five straight. … Veteran forward Brandon Prust returned to the lineup for Vancouver after missing 11 games with an ankle injury. … The Canucks host New Jersey on Sunday. … The Blackhawks continue their six-game road trip on Wednesday against San Jose.