Jannik Hansen and Zack Kassian also scored for the Canucks, who won their eighth in a row at home and are guaranteed of home-ice advantage in the first round of the playoffs.
Henrik Sedin added two assists and Cory Schneider made 24 saves for the Canucks, who have put some distance between themselves and slumping Minnesota in the past few weeks.
Daniel Carcillo scored for Chicago, which trailed 1-0 after the first period and 3-0 after the second.
The Blackhawks are trying to win their first Presidents' Trophy since 1991, when Mike Keenan was coach. Chicago has 73 points with three games remaining, while Pittsburgh has 70 with three games also left on its schedule.
Canucks winger Chris Higgins returned to the lineup after missing six games with a knee injury, and did not take long to make his presence felt. Crawford stopped Higgins early in the first, getting his blocker on the puck as Higgins tried to finish a perfectly executed three-way passing play with Derek Roy and Ryan Kesler.
Shortly after the eight-minute mark, Crawford snared a hard Roy shot with his catching glove.
Hansen opened the scoring on a power play at 14:28 when Jason Garrison's slap shot went in off his skate. The puck also hit Chicago defenseman Johnny Oduya's stick on the way to the net.
Kassian gave the Canucks a 2-0 lead at 11:37 of the second period, burying Daniel Sedin's pass from behind the net.
The goal ended Kassian's scoring drought at eight games dating to April 4 against Edmonton.
Daniel Sedin put the Canucks ahead 3-0 in the final minute of the period after taking a long pass off the boards to score on a breakaway.
Schneider kept his shutout bid alive in the third by stopping Chicago rookie Brandon Saad on a short-handed breakaway, but the Canucks goaltender lost it at 11:50 of third on a fluke play.
Canucks winger Tom Sestito tried to rim the puck around the end boards, but it hit referee Tom Kowal's skate and caromed right to Carcillo in front of the net, who fired a backhand for his second goal of the season.
Blackhawks coach Joel Quenneville pulled Crawford for an extra attacker twice in the last two minutes, but the visitors could not get any closer.
The Canucks play their final home game Thursday against Anaheim before closing out the regular season in Edmonton on Saturday.
The Blackhawks have three more games to secure top spot overall—Wednesday in Edmonton, Saturday at home against Calgary and Sunday in St. Louis.
Notes: Vancouver was 1-for-5 on the power play, while Chicago was scoreless on two chances. ... D Frank Corrado, 20, made his NHL debut for Vancouver after being called up earlier in the day from Chicago of the AHL. Corrado spent most of this season in juniors with the OHL's Sudbury Wolves and Kitchener Rangers. Canucks coach Alain Vigneault showed confidence by starting him in the top defensive pair with Alex Edler. ... Chicago F Patrick Sharp and D Michal Rozsival sat out with undisclosed upper-body injuries, while C Michal Handzus was sidelined with an undisclosed injury. ... Chicago G Ray Emery dressed as Crawford's backup after missing two games with a lower-body injury. ... The game was the Canucks' 430th consecutive sellout.