EDMONTON -- Noah Hanifin had two goals and an assist for the Calgary Flames in a 6-3 win against the Edmonton Oilers at Rogers Place on Saturday.

Jonathan Huberdeau and Connor Zary each had two assists, and Dan Vladar made 32 saves for the Flames (28-25-5), who have won three in a row.

"It's the consistency we'd like to see," Calgary coach Ryan Huska said. "We've been fighting it, and if there's a knock on us it's been our inability to put streaks together and our inability to stop streaks. And I think a lot of that comes down to leadership. I think it comes down to being able to turn the page when something doesn't go your way within a game, or when it does go your way, you stay straight ahead and make sure you don't change your game plan."

Zach Hyman scored two goals, Connor McDavid had two assists, and Stuart Skinner made 25 saves for the Oilers (33-20-2), who have lost three in a row (0-2-1), including 4-2 to the Minnesota Wild on Friday.

"Good teams put together long winning streaks, and at the same time, their losing streaks are very short,” Edmonton coach Kris Knoblauch said. “There's no Stanley Cup championship team that hasn't had a lull during a season, but good teams shorten it, and we're getting to that point where we have to improve."

CGY@EDM: Hanifin scores his 10th goal of season in 1st period

Nazem Kadri gave the Flames a 1-0 lead at 2:02 of the first period, deflecting in a centering pass from Walker Duehr.

"That's the pack mentality right there that we've been preaching about,” said Kadri, who has scored four goals in his past three games. “A character win in a tough building against a good team. It feels good.

"We tried to come out and set the tone. That's something we've been trying to focus on the last few games, and it's certainly been working."

Martin Pospisil made it 2-0 at 9:11 of the first. After catching the Oilers on a bad line change, he beat Skinner over his left shoulder with a wrist shot from the left circle.

Hanifin extended the lead to 3-0 at 15:53, taking a pass from Mikael Backlund and shooting blocker side from the right circle.

"It was a great team effort tonight,” Hanifin said. “We needed to get a win against those guys. We've had a tough time playing them lately, and I thought we had a really good start to the game.

“We played with a lot of emotion and passion, and that's something you've got to do when you play a team with that much skill. I thought it was a really complete game for us."

CGY@EDM: Hanifin scores his second goal of game in 2nd period

Hyman got the Oilers to within 3-1 at 18:29 with a power-play goal. He corralled a pass from McDavid near the left post and lifted a shot over a sprawled Vladar.

Hyman then cut it to 3-2 at 4:34 of the second period, scoring with his backhand on a breakaway after receiving a stretch pass from Leon Draisaitl.

“Along an 82-game season, you have to face different types of adversities,” Hyman said. “Everybody's used to us just winning. So, we're in a stretch where it’s win a game, lose a game. We’ve lost three games in a row here, which isn't great. But no panic. I think there's a strong sense of confidence in this group.”

Dryden Hunt responded for the Flames to make it 4-2 at 11:47, scoring blocker side from the high slot off a pass from behind the net from Huberdeau.

Hanifin pushed it to 5-2 at 14:09, one-timing a cross-ice pass from Zary from the right circle for a power-play goal.

"At the end of the day, that's his job. He's got to come and play,” Huska said. “He's a defenseman we rely on heavily, and we're going to continue to do that."

Blake Coleman scored into an empty net to make it 6-2 at 12:51 of the third period.

Mattias Janmark made it 6-3 at 16:16, picking up a loose puck in front of the crease and sliding a backhand past Vladar's left pad.

“We just got outworked from the start. It just seemed like they were ready and we, for whatever reason, weren’t quite ready,” Draisaitl said. “Of course, when things aren’t going your way and you lose a couple in a row, it is easy to get down on yourself. It is something that we, led by me, can do a much better job with, and going forward we will continue to chip away at that.”

NOTES: Hyman has scored in four straight games. He has 37 goals this season, an NHL career high. ... McDavid extended his point streak to seven games (18 assists). ... Hunt's goal was his first this season.