Horvat won it for the Canucks when he took a pass from Edler and beat Crawford five-hole for his 25th goal of the season.
"A little give-and-go there with [Edler]," Horvat said. "[Edler] made a good play to get it back to me. I just wanted to whack at it. I wasn't even sure it was in until I went past the goalie and saw it in and threw my arms in the air. It was pretty awesome."
Erik Gustafsson tied it 2-2 with 3:13 remaining in the third period for Chicago with a one-timer from the right point. The goal was scored 16 seconds after Crawford saved Brock Boeser's wrist shot to keep it a one-goal game.
"He was incredible today," Gustafsson said of Crawford. "If he's not playing like that, it's probably 5-1. At least we got one point."
Toews gave the Blackhawks a 1-0 lead at 19:25 of the first period when he redirected Kane's feed from above the right circle on the power play.
Edler scored 53 seconds into the second period on the power play to tie it 1-1. Horvat won an offensive zone face-off against Toews back to Edler, who quickly sent a shot through traffic that redirected in off the stick of Blackhawks defenseman Slater Koekkoek.
Granlund gave the Canucks a 2-1 lead at 6:22 of the second on a rebound after Crawford saved Boeser's initial shot from the slot. With an assist on the goal, forward Elias Pettersson set Vancouver's record for points by a rookie with 61 (27 goals, 34 assists), passing Ivan Hlinka and Pavel Bure.
"It's a lot to take in," Pettersson said. "It means a lot to me. I'm very proud of it, but I'm just focusing on next game. Of course, I'm very happy with the record."
The Canucks outshot the Blackhawks 11-4 in the second period.
"I think overall, the first 40 minutes for sure wasn't good enough," Toews said. "Especially in our building, against a team that's on a back-to-back, we needed to take advantage and needed to have more speed and energy through four lines. I don't think anyone really brought their A-game today."