Having been controversially denied what looked to be a valid Adam Le Fondre goal, Sydney held firm in the second half thanks to a fantastic save by Andrew Redmayne.
The goalkeeper proved his side's hero in the shoot-out, keeping out Andy Keogh's strike before standing his ground when Brendon Santalab - making his last A-League appearance prior to retirement - attempted a Panenka.
Substitute Reza Ghoochannejhad stepped up to convert the winning spot-kick, sealing Sydney's second title in three seasons.
Both sides exchanged good chances in the opening stages, Sydney's Rhyan Grant heading over after Joel Chianese had gone close at the other end.
Sydney thought it had the lead in the 28th minute when Le Fondre tucked home from Michael Zullo's cross, only for the offside flag to cut his celebrations short and, despite the former Reading striker having clearly been onside when the ball was delivered into him, VAR upheld the decision.
Sydney's frustration would have been compounded eight minutes into the second half, had Redmayne not pulled off a fine save to deny Diego Castro, but that was the closest either side came to preventing extra time.
Alex Brosque's A-League career came to an end when he was replaced by Ghoochannejhad shortly after the restart, but it was Perth who had the chance to clinch the win late on only for Jason Davidson to shoot straight at Redmayne from a tight angle rather than tee up Castro.
Davidson's profligacy duly proved costly in the shoot-out - Redmayne diving low to his right to parry Keogh's effort away before Santalab sent a dreadful Panenka attempt straight at Sydney's goalkeeper, with Ghoochannejhad hammering home to secure the trophy.