CALGARY, Alberta -- Cam Fowler saw an opening to the net and then closed his eyes as he took a shot.
Turns out, he didn't need to see a thing to win it for the Anaheim Ducks.
"Luckily it went in," the 19-year-old Fowler said. "I didn't get as much on it as I would have liked and it looked like it fooled him a little bit. They always say that backhanders are the hardest to stop."
Teemu Selanne tied the game at 4 on the power play with under three minutes to go in regulation.
"Cam Fowler is an amazing hockey player," said Selanne, who assisted on the winner. "It's unbelievable that young guys like that can come into the league and dominate in pretty much every area. If this guy doesn't win the Norris Trophy one day, it's going to be a crime."
The 40-year-old Selanne said the presence of Fowler and other young players makes veterans like himself feel invigorated.
"When we watch guys like Fowler and all the young guys play like that, we feel younger too," Selanne said.
Saku Koivu had two goals and an assist, and Brandon McMillan also scored for Anaheim, which won its fifth straight road game to move into a tie with San Jose for fourth in the Western Conference.
"This was huge for us," Fowler said. "If we drop this one, Calgary jumps ahead of us in the standings and now we bump up to fourth. You can just see the degree of difficulty that's involved in a conference like this. Every game is huge and all the points matter and we're lucky to come out of here with two."
Rene Bourque, Olli Jokinen, Jarome Iginla and Curtis Glencross scored for Calgary, which remained in eighth in the conference, one ahead of Minnesota.
"It was a hard-fought game, a game that went back and forth," Flames coach Brent Sutter said. "Momentum changed at different times throughout the game, but when you're up a goal going into the last two minutes, you can't take a penalty."
Selanne's tying goal came with Glencross in the penalty box for hooking Corey Perry. It was the Flames' only penalty of the night. Brendan Morrison lost the faceoff deep in the Flames end and then lost track of Selanne in the slot as he one-timed Ryan Getzlaf's centering pass behind Kiprusoff.
"We battled hard here, but we made a couple mistakes," Morrison said. "And with the offensive players that they have, you have to be wary, and you have to make very few mistakes as they're a very opportunistic team."
Glencross, who scored the winning goal in each of the two previous games, had given the Flames a 4-3 lead at 8:18 of the third, snapping a shot over the shoulder of Curtis McElhinney. The goal came less than three minutes after Iginla had tied it with his team-leading 23rd.
Despite the loss, Calgary takes its 8-0-2 streak into Saturday night's game in Vancouver against the Conference-leading Canucks.
"We got the one point and we've got to go forward," Glencross said. "We've got another game in 24 hours and we've got to go back out and get another two points."
After falling behind 2-1 in the second on goals 41 seconds apart from Bourque and Jokinen, Anaheim regained the lead midway in the period with two goals in a 2:38 stretch.
Koivu tied it at 7:34 and a pretty short-handed goal from McMillan, a 20-year-old rookie, put the Ducks ahead 3-2.
Although Jonas Hiller (fatigue) was activated from injured reserve Friday, McElhinney made his third start in a row and first against his former team. McElhinney, who finished with 21 stops, is 6-5-1 on the season. In parts of three seasons with the Flames, he won just four times in 29 appearances.
"Curtis has been real strong with us," Ducks coach Randy Carlyle said. "He's had more of an opportunity with us than he had with the Flames because of the situation he's in."
Kiprusoff made 25 saves for the Flames.
Calgary LW Alex Tanguay (neck) missed his second game ... Selanne's three assists gives him 690 in his career, moving him past Maurice Richard and into 53rd on the NHL's all-time list ... Calgary D Cory Sarich played in career game No. 800 ... Anaheim D Francois Beauchemin was in the lineup for the first time since Wednesday's trade with Toronto. Beauchemin spent four seasons with the Ducks before signing with Toronto as a free agent in July 2009. ... The Flames play in Vancouver against the Northwest Division-leading Canucks on Saturday night.