Perry appeared to trip up Jussi Jokinen behind the Carolina net and grabbed the loose puck as no penalty was called. He passed it to Sheldon Brookbank, took a return feed in the left circle and one-timed a blast past Cam Ward.
In a game between two teams desperately clinging to playoff aspirations, Anaheim prevailed before it embarks on a season-high eight-game road trip sitting eight points out of the final playoff spot in the Western Conference.
That the win came on a controversial play didn't faze Perry and the Ducks, who are 11-2-2 since Jan. 6.
"They didn't blow the whistle so you keep playing," Perry said after scoring his 23rd goal. "We've had calls against us all year, and maybe that's a turning point for us. We'll see.
"It was huge. You look where we are in the standings. You look at what we've done the last month. Every point counts for us. It doesn't matter who it's against or what but we needed it for the road trip. We didn't want to go on the road trip on a losing note. Eight games is a long way, and it can make or break our season here."
Carolina was trying to win three straight for the first time since mid-October after wins against Boston and Los Angeles. Coach Kirk Muller was animated at officials after the game-winning goal but was reserved afterward.
"I was told that he (Jokinen) hit the net," Muller said. "I watched the replay, so you guys can watch the replay and decide what you see.
"I thought we had a really strong road game. We wanted to come in and contain their top guys and keep a tight road game and I thought we did that for 60 minutes plus actually. I was really happy with our guys' performance tonight."
The game played out as expected, with Ward locked in a tight matchup with Anaheim's Jonas Hiller. There were only three penalties called; none resulted in goals. Hiller and Ward each made 31 saves.
Hiller has allowed two or fewer goals in 11 of his last 13 decisions. Ward allowed three goals for only the second time in 11 starts.
"It was a tight game," Carolina captain Eric Staal said. "It was a hard-fought game. I liked the way our team played on the road here against a team that's obviously been playing a lot better lately and winning some games.
"Wardo was good underneath the D. It's just unfortunate there in overtime to have a call like that go against us, and it ended up costing a point."
The Ducks showed resiliency when they responded quickly to tie it at 2-2 following a great play Staal, who stole the puck from Brookbank behind the goal line and backhanded it off Hiller and into the net at 3:47 of the third period to put the Hurricanes up, 2-1.
"A quick little bank shot and luckily it went in," Staal said. "It was a nice goal to build momentum there in the third period for us."
"It's a tell-tale sign of a team that won't quit," Anaheim coach Bruce Boudreau said.
"And it's a tell-tale sign of a team that wants to win … this team has gone from, five weeks ago when we were 20 points out of a playoff, now to eight points. It's a team that's never stopped believing in themselves."
Anaheim couldn't seem to put much rubber on Ward through 30 minutes but solid cycle work by its third line tied it at 1. Nick Bonino tipped Lubomir Visnovsky's waist-high slap shot past Ward at 12:48 of the middle period after Andrew Cogliano deftly worked the puck to set up Visnovsky at the right point.
The Ducks finished the period with jump and nearly converted a 2-on-1 when Niklas Hagman toe dragged around a defender and hit the crossbar.
Tuomo Ruutu gave Carolina a 1-0 lead when he batted his own rebound out of midair past Hiller with 2:03 to go in the opening period. Jiri Tlusty bounced off Ryan Getzlaf in the high slot and put the initial shot on goal before an unchecked Ruutu got a couple of whacks at it and knocked it into the net.