CALGARY -- The Anaheim Ducks didn't waste an opportunity to gain ground in the chase for a second straight Pacific Division title.
Andrew Cogliano scored the game-winner with 5:19 left in regulation and Jonas Hiller made 32 saves to lift Anaheim to a 3-2 win against the Calgary Flames at Scotiabank Saddledome on Wednesday.
With the victory, the Ducks -- who clinched a spot in the Stanley Cup Playoffs on Tuesday -- pulled within two points of the idle San Jose Sharks for the top spot in the Pacific. Anaheim has two games at hand on San Jose, who have 103 points on the season.
"Sometimes games in hand aren't worth anything unless you win them," Ducks coach Bruce Boudreau said. "When you get into that next bracket at 101 points, it looks a lot closer than being 99 to 103. Now you're two points back and you've got two games at hand and you've got to take advantage of it, but it's a good start to the week."
The Ducks (47-18-7) went over the 100-point mark in a franchise-best 72 games. The previous best, 75 games, was set in the 2006-07 season, when the Ducks won the only Stanley Cup in franchise history.
The Flames' loss was the fourth in their past 14 home games.
"That's the way you learn sometimes, too," said forward Brian McGrattan, who scored in career game No. 300. "You learn from tough losses. There's going to be games throughout the year where you're in the game and a couple lucky bounces with an open net and they get the win. Our group hasn't given up all year. We're in every game and work our butts off right until the end and that's a good sign."
The Flames helped Anaheim's cause Monday by playing spoiler and beating the Sharks 2-1 in a shootout, but couldn't return the favor to San Jose two nights later.
Calgary led 2-1 heading into the third, but the Ducks got even at 5:32. Flames goaltender Karri Ramo made a blocker save on Sami Vatanen's point shot, but left the rebound for Mathieu Perreault, who fired it home for his 16th of the season to tie the game 2-2.
"I just kind of went to the net," Perreault said. "I thought it was going wide at first and all of a sudden it was just laying there. It's a lucky one. We'll take it."
Cogliano completed the Ducks' comeback at 14:41. Ramo stopped Stephane Robidas' shot but kicked the rebound onto the stick of Cogliano, who put Anaheim ahead to stay with his career-high 21st goal of the season.
"It was a play we've been working on, just getting to the net," Cogliano said. "We feel like we've been getting shots but we haven't been getting dirty goals. Matt got one to tie it up and I got one off a rebound. Those are the goals we're trying to score these days."
The goal came two minutes after he hit the post on a wrist shot from the high slot.
"That's what you need," Boudreau said. "If you're not fighting, you're not trying. He battled and he came up big at the end for us, for sure."
After giving up three goals on five shots in just over 11 minutes of work before being pulled in a 7-2 loss to the Flames two weeks ago, Hiller's body of work was much improved Wednesday.
"The whole team was upset with what happened last time," Hiller said. "I didn't feel I played terribly or whatever but those things happen and it's nice if you get a chance pretty quick to do better and definitely happy with the way we responded and the way I responded."
Hiller was sharp from the drop of the puck, first denying McGrattan's deflection before using his pad to stuff Kevin Westgarth's short-side attempt in the opening minutes. He also stopped scoring chances off the sticks of Cammalleri and Matt Stajan among his 12 first-period stops.
Nick Bonino rewarded his efforts with 1:03 remaining in the period. With Ladislav Smid in the penalty box for an illegal check to the head of former Flames forward Tim Jackman, Bonino skirted into the Calgary zone and shifted to get TJ Brodie moving before beating Ramo over the glove for his 18th of the season to put Anaheim up 1-0.
In the second, it was Ramo's turn to shine.
After McGrattan scored his fourth of the season to tie the game 1-1 at 4:44, the Flames goaltender denied Rickard Rakell's one-timer off a cross-slot feed from Corey Perry near the midway mark of the period. He followed it up with his best sequence of the game a minute later, denying Bonino's in-close bid for his second goal of the night, then scrambling to his feet in time to blocker away Bryan Allen's blast from the point.
A toe save on Rakell's wraparound capped a 16-save effort in the period and allowed the Flames to take the lead with 25.5 seconds remaining before intermission. With the puck loose in the high slot, Smid faked a slap shot before spotting Jiri Hudler alone coming off the boards and feeding him for a one-timer that beat Hiller. Hudler's 16th of the season to put Calgary up 2-1 after 40 minutes.