VANCOUVER -- Thatcher Demko made 36 saves and J.T. Miller scored two goals in the Vancouver Canucks' 3-1 win against the St. Louis Blues at Rogers Arena on Monday.
Jake Virtanen and Christopher Tanev each had two assists for Vancouver (28-18-4), which has won nine straight at home. The Canucks are 12-3-0 in their past 15 games and extended their lead in the Pacific Division to three points.
Vancouver hasn't lost at home since Dec. 17, the longest active streak in the NHL and two wins shy of its record set from Feb. 3 to Mar. 19, 2009.
[WATCH: All Lightning vs. Stars highlights]
"We have been playing really good hockey," Demko said. "Sometimes teams can get a little bit complacent during a break. It was good to get back in it. It was a huge two points against a really good team. I'm really proud of the effort."
Zach Sanford scored, and Jake Allen made 23 saves for the Western Conference-leading Blues (30-12-8), who are 0-2-1 in their past three after a four-game winning streak.
Video: STL@VAN: Miller drills one home from the slot
It was the first game for each team since Jan. 18.
"They got a good team, obviously been good here in this building," Allen said. "Our game built as the game went on; it got better, we possessed the puck well and we spent a lot of time in their zone. We had some chances, but it definitely wasn't our sharpest executing game."
Sanford gave St. Louis a 1-0 lead on a delayed penalty at 3:06 of the first period. The Blues were 21-0-6 when scoring first this season.
But Miller scored twice in the second period. He tied it with a spinning wrist shot from between the face-off circles at 2:16 to make it 1-1, then gave the Canucks a 2-1 lead with a one-timer from inside the right face-off dot to finish a 3-on-2 rush with Elias Pettersson and Virtanen.
"It wasn't that pretty of a game; sometimes there's breakdowns," said Miller, who has 48 points (19 goals, 29 assists) in 50 games, exceeding his point total (47) in 75 games with the Tampa Bay Lightning last season. "Fortunately, it was on my stick. I got a couple of lucky bounces."
Demko, who made his second straight start and fourth in the past 20 games, sprawled to make a save against St. Louis forward Jaden Schwartz on a backdoor pass off a 2-on-1 rush with 6:31 left in the third period.
"[Schwartz] would love to have that one back," said Blues center Brayden Schenn, who made the pass. "He scores those nine times out of 10. We had plenty of chances and at the end of the day, their goalie played good tonight and made some saves."
Demko received some help from his teammates; the Canucks blocked 23 shots, including 10 in the third period.
"They had a little bit more zone time. I thought our guys handled it really well," Demko said. "The amount of blocks was pretty crazy. Guys are winding up with slap shots and one-timers and guys are going down. Huge kudos to those guys."
Bo Horvat scored an empty-net goal with one second remaining for the 3-1 final.
The Blues entered with the top road power play (29 percent) in the NHL but went 0-for-3.
"We created a lot of good chances," St. Louis coach Craig Berube said. "We've got to bury a couple. The goalie played well, but we can shoot the puck a little better and capitalize on some chances."
Video: STL@VAN: Miller takes the lead on second goal
They said it
"We had a great mentality in the third being down 2-1. Everyone had chances, everyone was cycling, [defensemen] were involved, everyone put up a solid effort in the third period. At the end of the day, we weren't able to buy one." -- Blues center Brayden Schenn
"That one felt really good. We played a great team game. They had a great push in the third. We had a lot of guys putting their body on the line to make sure we got the two points. That's as much a playoff game as it gets." -- Canucks forward J.T. Miller
Need to know
Blues defenseman Colton Parayko played 19:37 in his return after missing the previous seven games with an upper-body injury. … St. Louis forward David Perron had an assist; he has 10 points (five goals, five assists) in his past eight games. … Horvat has 15 points (seven goals, eight assists) in his past 11 games. … Canucks forward Antoine Roussel played his 500th NHL game.
Blues: At the Calgary Flames on Tuesday (9 p.m. ET; ESPN+, SNW, SNP, FS-MW, NHL.TV)
Canucks: At the San Jose Sharks on Wednesday (10:30 p.m. ET; ESPN+, NBCSCA, SNP, NHL.TV)
Video: Miller, Demko lift Canucks past Blues, 3-1