Updated

When the Ducks and Flames play, they can always count on a tight game usually decided by one goal.

This time, that goal belonged to Anaheim.

Ryan Getzlaf scored the winning goal with 46 seconds left to give the Ducks a 3-2 victory Friday night, extending Anaheim's home winning streak against Calgary to 15 games.

It was a big goal for the Ducks, but even bigger for Getzlaf, who hadn't scored since Jan. 22 against Colorado — a span of 18 games in which he contributed assists but no scoring punch.

Getzlaf took a short pass from Corey Perry and fired a one-timer from the right circle at 19:14.

"The last little bit has been a bit of a struggle with putting the puck in the net," Getzlaf said. "We've had all kinds of chances the last few of games, so it was nice to get one. It was a good neutral-zone regroup. We just got off the bench, got some speed going, go wide and back the D off a little bit, and Perry made a nice little drop pass to me."

Getzlaf leads the Ducks in assists — he earned his 36th of the season in the second. But a typical game for him lately was a big fat zero in the goals column on the stat sheet. He was blanked on four shots in a loss to Buffalo on Wednesday.

"It looked like he was so snake bit, so maybe this will open the door for him," Ducks coach Bruce Boudreau said, "and the other two guys are the guys you count on to score. So we're not going to win if those guys aren't our best players every night."

Perry and Bobby Ryan had Anaheim's other two goals, but they were happiest for Getzlaf.

"He's been holding the stick a little tight because the pucks haven't been going for him," said Ryan, who had a root canal earlier in the day. "But that was a power slap shot there. Ryan's been great for us. He and Perry usually come on down the stretch for us around this time, and we certainly hope that it happens like it did last year."

Twelve of the last 15 games between the teams have been decided by one goal, and of the last 12, seven have gone to either overtime or a shootout.

"If you look at both teams, we match up well against each other," Perry said. "We play the same kind of style, and the lines — one through four — are pretty even. They're big and they're physical, so it's a tough team to play against."

The Flames were kicking themselves for not forcing overtime.

"Really unacceptable with where we're sitting right now," Mike Cammalleri said.

The Ducks nearly scored on a long shot with 10 seconds left, but defenseman Mark Giordano scrambled after the puck sailing toward the empty net. His desperation swipe with his stick came just as the puck was about to cross the goal line.

Jonas Hiller made 27 saves for the Ducks, whose winning streak at home against Calgary is their longest against one opponent in franchise history. They outshot the Flames in all three periods while snapping a two-game skid.

Leland Irving stopped 36 shots in his sixth career start for the Flames.

Flames coach Brent Sutter said Irving had "no chance" on Getzlaf's goal.

"You have Ryan Getzlaf bearing down with a slap shot from the top of the circle," Sutter said. "That's a tough play for a goalie.

"A 2-on-5 coming into your zone, we just all stood there and watched. It's a tough way to lose a game, especially it's big points we let get away from us."

The Flames tied the game at 2 early in the third. Alex Tanguay scored into the open left side of the net while Hiller was caught in a scrum on the right side assisted by Cammalleri and Jarome Iginla.

"When they tied it 2-2, we were probably a little nervous, and they had some really good chances again," Boudreau said. "But Hilly saved our bacon in the last 10 minutes."

Perry gave Anaheim its first lead, 2-1, at 7:41 of the second. He took a short pass from Getzlaf on the left side and lunged at the net to beat Irving stick side for his 199th career NHL goal.

The fight-filled first period ended in a 1-1 tie, with Curtis Glencross scoring first for the Flames and Ryan notching his third goal in six games with a 2-on-1 for the Ducks. Each team had four penalties, including consecutive ones for fighting. Luca Sbisa and Tom Kostopoulos landed punches during a faceoff and then Francois Beauchemin and Iginla tangled along the boards three minutes later.

Notes: The Flames' last win at Anaheim was on Jan. 19, 2004. ... Hiller made his 24th consecutive start, bettering the franchise record of 23 shared by Guy Hebert and J.S. Giguere. He has allowed two goals or less in eight of his last 10 games. ... Selanne is two points away from tying his childhood idol Jari Kurri for 19th on the all-time scoring list with 1,398 points. ... Calgary D Jay Bouwmeester played in his 700th career NHL game. ... Toni Lydman is the only player who played in the Flames' last win in Anaheim, although he is now on the Ducks' roster. Lydman collected an assist in his 800th career NHL game. ... The 100th anniversary of the Calgary Stampede was celebrated inside a tent set up in the parking lot. The 10-day event is in July.