After going six straight matches without a win, Perth has now won two in a row to keep its Finals hopes alive.
Fornaroli put his side ahead on Wednesday with an early free-kick into the top corner before Chris Ikonomidis scored his third goal in as many league matches.
Substitute Joel Chianese wrapped up the points with a fine finish 13 minutes from time, to leave Western floundering given they lost 5-0 to Western Sydney Wanderers last time out.
Perth's win, though, may have been fortunate as they scored three times while only registering an xG of 0.5 compared to 0.8 for the visitor.
Second-placed Central Coast Mariners racked up 20 attempts on goal but was forced to settle for a 0-0 draw at Brisbane Roar, which is sixth, six points ahead of Perth in 10th.
Joey Champness hit the crossbar for Brisbane, while Central Coast thought they had won it when Oliver Bozanic chipped goalkeeper Jamie Young in stoppage time, only to be denied by the woodwork.
Alen Stajcic's side are one point clear of Sydney FC, Adelaide United and Macarthur in a tight table, though leaders Melbourne City are eight points clear of them at the summit.