DENVER - The Vancouver Canucks had a hard time solving goaltender Semyon Varlamov. Once they did, the goals came in bunches.

Nick Bonino scored two goals, Ryan Miller made 20 saves and the Canucks overcame an early deficit to beat the Colorado Avalanche 5-2 on Tuesday night.

Henrik Sedin and Derek Dorsett also scored for the Canucks. Chris Higgins had two assists for Vancouver, which controlled the game after two quick goals by the Avalanche.

It was Vancouver's fourth win in five games. It looked like the Canucks were going to be victimized by a hot goalie until Sedin finally got one by Varlamov in the waning moments of the second period. Sedin, stationed in front of the net, picked up Daniel Sedin's rebound and beat Varlamov with 4 seconds left in the period.

It capped a dominant period for Vancouver, which outshot Colorado 16-8.

"In the second we just took the game over," said Shawn Matthias, who scored the final goal. "I'd like to see how long we had the puck. It seemed like we were rolling the lines and cycling the puck. All four lines were rolling."

The Canucks continued to control the play and tied it early in the third when Dorsett deflected Dan Hamhuis' shot over the shoulder of Varlamov at 2:27. Bonino gave Vancouver the lead when he corralled a loose puck in the crease and put it in the open net at 4:47.

"Seems like when they scored that late goal with 4 seconds left in the second period that gave them some momentum going into the third period," Avalanche coach Patrick Roy said.

Bonino got his second nearly five minutes later when he beat Varlamov on the short side to make it 4-2. Matthias iced with his first goal at 13:10.

"A great play again by Higgy. He had three guys on him, gave me the pass," Bonino said. "I was going to get squeezed off if I didn't put it on net. Sometimes they go in, sometimes they don't."

Varlamov had 32 saves and John Mitchell and Jamie McGinn had goals for the Avalanche, which has lost three straight. Colorado, which started last season 12-1, is 3-6-5.

The team had an impromptu meeting after the game following Tuesday's loss.

"We talked amongst ourselves, and I think we'll keep that at that," captain Gabriel Landeskog said. "We'll keep that in the dressing room. We have to be better."

The Avalanche went ahead 1-0 on Mitchell's goal 1:15 into the game. He got a drop pass from Alex Tanguay and beat Miller with Colorado's first shot of the game.

McGinn made it 2-0 late in the first when Jarome Iginla fed him with a pass from behind the net and McGinn put the puck in the top right corner at 16:33.

Nathan MacKinnon had a chance to make it 3-0 in the second when he stole the puck in the Vancouver zone but Miller made a glove save.

"I spotted them two goals I felt like I had to calm things down, in my mind as well," Miller said. "I needed to calm down and battle through. We were able to get through some penalty kills and the guys got rewarded in the third period."

The Avalanche killed off all four of their penalties and increased their streak to 29 straight penalty kills. It's the longest for the team in a single season since 2001-02.

NOTES: Avalanche D Brad Stuart injured his leg in the second period and did not return. ... Colorado RW Daniel Briere was a healthy scratch for the fourth straight game. He has two goals in 10 games this season. ... Canucks D Kevin Bieksa was in the lineup two days after taking a puck to the eye in a game against Nashville. ... Canucks rookie C Bo Horvat made his NHL debut. He was the ninth overall pick by Vancouver in the 2013 NHL Draft.