ANAHEIM -- There was no streak-snapping comeback for the Calgary Flames this time, nor was there a redemptive Jonas Hiller homecoming Tuesday.
The Anaheim Ducks got closer to the 60-minute effort they were seeking in a 3-2 win against Calgary at Honda Center. Corey Perry and Kyle Palmieri scored second-period goals and the Ducks won their 19th straight home game against the Flames.
Palmieri's goal was the game-winner before another wild-ride finish for both teams.
"We like to keep it interesting," Palmieri said. "I saw the stat the other day about how many comeback wins and points they get. But hey, we got two points. It wasn't the prettiest at the end. But it's two points."
It was Hiller's first game in Anaheim since he left as a free agent after seven seasons with the Ducks. But that storyline dissipated with a strong second period by Anaheim, which has earned points in 11 of 12 games (6-1-5). Hiller said it was "definitely weird" playing in his former home building, where brief chants of "Hil-ler" were heard.
Hiller made 29 saves and would probably like to have the Palmieri goal back because Calgary seemed to have it well defended.
"It's definitely a tough one to give up," Hiller said. "I think it's like a 1-on-4 at the beginning. He kind of outworks everybody and he finds a way to score. Those definitely hurt. After the game, you kind of have to say, 'Well yeah, if they wouldn't have scored that one, we might have tied it.' But you have to play 60 minutes."
Calgary erased 2-0 deficits in two of its previous three games, including Nov.18 against Anaheim, and was 5-6-0 when trailing after two periods. But the Flames' rally fell short against the Ducks, who were down to five defensemen in the third period because Francois Beauchemin left the game with an upper-body injury. Anaheim coach Bruce Boudreau did not have an update.
"I think we have to do better," Hiller said. "We can't just hopefully win every game in the last five minutes; always being down and coming from behind might work once in a while. It shows a lot of character and we kind of showed it again tonight. I think we've got to be ready to play from the first minute on. I thought we got outworked in the first two periods. You can't just flip the switch."
Calgary has not won at Honda Center since Jan.19, 2004, the longest home streak against one opponent in Ducks history. Ten of the 12 games have been decided by one goal, and Anaheim might have deflated Calgary in the second period when it killed three penalties and took a 3-0 lead on goals by Perry and Palmieri.
Palmieri went into the corner with Flames defenseman Deryk Engelland, spun toward the net and slipped a backhand through Hiller at 19:44.
"I got the puck and just kind of wanted to chip it and get down there to wait for my linemates to get on the ice," Palmieri said. "I ended up having a little bit of a lane to the net and I just kind of wanted to bang it off his pads and create a rebound for hopefully another guy crashing the net."
Perry got his stick on kick pass by Matt Beleskey in the slot, shortly after Anaheim killed Mat Clark's tripping penalty. Perry's team-leading 12th goal at 5:04 of the second was his first since a case of mumps.
It was the fourth straight game the Flames trailed 2-0 and the 12th time in 23 games they were behind after two periods.
Calgary's eighth-ranked power play had its best chance on its third attempt but could not convert. Anaheim otherwise took it to Calgary physically, highlighted by Beauchemin's hip check on Markus Granlund.
Ducks captain Ryan Getzlaf and center Ryan Kesler combined to win 25 of 41 faceoffs, and Perry had five shots and four hits.
"Getzlaf and Perry, they're not franchise players for nothing and tonight they played like the leaders of this organization," Calgary coach Bob Hartley said. "We had no answers for them. They were out-muscling us, out-powering us. They made it real tough. We got caught defending for a while. But after this, we got going. But we ran out of time."
The scoring started on a fluky bounce when Beleskey's centering pass to Perry hit defenseman Kris Russell's skate and went into the net at 4:37 of the first. It was Beleskey's 10th goal, one shy of his career high from 2009-10.