CALGARY — After blowing two big leads already this season, Carolina was determined not to let this one slip away.

Jeff Skinner had a goal and an assist and Noah Hanifin had a career-high three assists on Thursday as the Hurricanes jumped in front three goals, saw the lead get whittled down to one, but hung on for a 4-2 victory over the Calgary Flames.

Carolina's first win of the season comes in game four of a season-opening six-game road trip.

"It's just part of the process of learning how to win and close out games," said Skinner.

"They get one late in the second. You don't want to give those up, right when the period ends. They get one there to make it 3-2. We just had to keep our composure and stay tough mentally."

Calgary's comeback attempt hit the wall when penalties to Alex Chiasson and Troy Brouwer in the final three minutes put the Flames down two men and the Hurricanes took advantage on Skinner's second goal of the season.

Skinner's five points ties him with Victor Rask and Lee Stempniak for the team lead.

With a young team, Carolina coach Bill Peters says it's all part of the learning process.

"We'll get better at playing with the lead. We'll get better at managing situations as we go. We'll learn from each game," he said.

The Hurricanes play in Philadelphia on Saturday.

Teuvo Teravainen, Viktor Stalberg and Rask also scored for Carolina (1-1-2), who won for the first time at the Saddledome in eight tries, dating back to Dec. 12, 2002.

Brouwer and Johnny Gaudreau scored for Calgary (1-3-1). The struggling Flames wrap up a three-game homestand on Saturday when the St. Louis Blues visit.

"We're trying to make plays that aren't there and we've got to just make those simple plays," said Calgary centre Sean Monahan. "It almost feels like we're not on the same key. It's not working well right now and we've got to figure it out."

Special teams continues to be a point of concern for the Flames. An 0 for 6 night on the power play drops them to 0 for 19 in their last four games. Carolina went 2 for 8 with the extra man.

"You can't lose special teams battles in this league or you'll lose games," said Flames captain Mark Giordano. "It's easy to say but a lot of that is when you're struggling, it comes down to battles and winning those battles and finding ways to get an ugly one."

Carolina surged in front 3-0 at 4:55 of the second when Stalberg slipped behind Dougie Hamilton, took a perfect pass from Klas Dahlbeck and beat Brian Elliott on a deke to his backhand.

That made it three goals on 13 shots on the Flames' new No. 1 goaltender and resulted in a Bronx jeer from the agitated home crowd the next time he handled the puck.

Acquired in the off-season from St. Louis, Elliott has started the season with three straight losses. After giving up four goals on 32 shots on Thursday he has an .839 save percentage.

"It's slight breakdowns here and there and it starts with me. I've got to make a save here and there too, to keep us in it," said the 32-year-old. "It's hard coming back in these games when you spot them a couple goals early and you're always coming from behind."

Eddie Lack made 24 stops to earn the win for Carolina.

Notes: Carolina's road trip is a result of the North Carolina state fair going on.... The Flames now begin a difficult stretch in their schedule in which 11 of their next 12 opponents were playoff teams a year ago... Ex-Flames D Jakub Nakladal was among the scratches for Carolina.