The Glory went ahead after 18 minutes through Steven McGarry's third goal in his past five games and would have had the three points wrapped up by half-time but for wasteful finishing.
Shane Smeltz endured a horrible spell, missing three one-on-one chances in quick succession, sending one wide, hitting the post with the second and having the third saved.
But Liam Miller scored eight minutes after the break and Travis Dodd added another before Adama Traore's own goal ensured Perth's unbeaten run was extended to eight games, their longest run without a loss in the A-League.
Ian Ferguson's side moved four points clear in fourth spot with the win and only need to hold that position over the last seven rounds to earn their first home final in the seven seasons of the A-League.
Gold Coast are now winless in their last seven games and are five points behind ninth-placed Adelaide.