Goaltending and special teams go a long way when trying to end a slump.

Teddy Purcell scored the shootout winner and Cam Talbot made 31 saves as the Edmonton Oilers came away with a 2-1 victory over the Calgary Flames on Saturday.

Edmonton killed off four of Calgary's power-play opportunities early in the game and then one more in overtime just to reach the shootout. The win snapped a four-game losing streak and it was the first one at home against the Flames in its last eight attempts.

"It was huge," Edmonton coach Todd McLellan said of his team's penalty kill. "We spent eight of the first 24 [minutes] penalty killing. That's the game right there, they get two or three and we're not exactly scoring a lot of goals right now, so that's the game.

"This one in particular, because of the rivalry, because of the way we lost to them last time we played in this building, the fact we're going on the road. It's nice to begin a tough road trip with a big win at home."

Mark Fayne also scored for the Oilers (18-23-5).

Sam Bennett replied for the Flames (20-20-3), who have won only once in their last four outings.

"We sat back a little too much and didn't shoot the puck enough tonight," said Flames captain Mark Giordano. "We were guilty of overlooking and going for the perfect play. Their goalie made some good saves, but for the most part, we passed up on way too many chances."

No support

Flames defenceman Dougie Hamilton felt his team wasted a 36-save performance by Jonas Hiller.

"When he plays like that, you should win pretty much every game," he said. "We owe him one next game."

Calgary got on the board first, 11 minutes into the first period when Bennett took a feed from Mikael Backlund and then made a move before beating Talbot with a backhand shot for his 11th goal of the season.

The Oilers, outshot 14-8 in the first, picked up the pace in the second period and took a 22-19 lead in shots after 40 minutes, but the game remained 1-0 at the end of the period.

Edmonton got a goal from an unlikely source midway through the third to tie the contest as Taylor Hall won a faceoff back to Fayne, who sent his first of the season through traffic and past Hiller.

"Whenever you can contribute it's good, it was a big goal and we needed at that time," said Fayne. "I thought we had strong periods in the second and third and we responded well from the first and it was a good, team win."

The Oilers begin a two-game trip in Florida against the Panthers on Monday. The Flames continue their five-game trip in New Jersey on Tuesday.