With the scores locked at 1-1 and the game headed to extra time, referee Jarred Gillett ruled Besart Berisha had been brought down in the box, despite replays seemingly showing no contact had been made.
The Albanian international stepped up to convert the penalty and send the 50,000 Roar fans into raptures.
Berisha had brought Brisbane back into the contest only moments earlier when his powerful header in the 84th minute had equalled the scores following an own goal from Roar defender Ivan Franjic in the 52nd minute.
While Perth will feel they were robbed by the decision, the Roar had dominated for much of the match and were only kept out by a superb defensive effort from the visitors.
It is the second year in succession that the Roar have come back from the brink to win the final – in 2011 they were 2-0 down deep into extra time before beating Central
Coast on penalties.
Perth took the game right up to the more-favoured Roar in the first half, with the home side seeming to struggle with the surface, which had been cut up by a Super 15 rugby match two nights before.
The first goal, when it came, was against the run of play as Perth’s Billy Mehmet stole the ball and went on a 50 metre run before laying it off to Travis Dodd, whose cross was turned into his own goal by the unlucky Franjic.
Brisbane were finally rewarded in the 84th minute when the Roar’s German talisman, Thomas Broich, put in a piercing cross and Berisha launched himself at the ball to head it past the stationary Vukovic.
The Roar kept attacking and Berisha’s winner, although controversial, was almost inevitable.
“I don’t have words really,” Perth captain Jacob Burns said.
"You’ve got to congratulate Brisbane but I feel as though I’ve been robbed there. That decision cost us the grand final.”