Melbourne City extended their unbeaten run to six games with a 2-1 win away at Brisbane Roar.
The visitors had to come from behind, when Massimo Maccarone netted after 14 minutes at Suncorp Stadium.
Marcin Budzinski and Stefan Mauk scored either side of the break to overturn that lead, before keeper Dean Bouzanis made a late penalty save to prevent Maccarone levelling.
City, who had Bart Schenkeveld returning to the side from suspension in central defence, made a poor start as Maccarone was able to latch onto Eric Bautheac's dead ball and put the Roar ahead.
It was the third time in four games Warren Joyce's side had conceded the opening goal, but they only trailed for five minutes.
Daniel Arzani was again the architect, threading a throughball for Budzinski to convert - it meant he had been involved in six of City's last seven goals.
Arzani almost got on the scoresheet just a minute later when Budzniski turned provider. This time, though, his effort flashed across Jamie Young's far post to let the Roar off the hook.
Maccarone preserved the stalemate when he volleyed off his own line to keep out Dario Vidosic's looping header, then at the other end the former Middlesbrough striker was denied by Bouzanis' sharp save from his header.
The visitors had a goal chalked off for offside against Vidosic just before the hour mark, but they did take the lead when Budzinski chased down a lost ball and crossed to find the late run of Mauk who headed home.
Michael Jakobsen brought down Fahid Ben Khalfallah with 11 minutes to go to give Brisbane a penalty. But Bouzanis guessed the right way and kept out Maccarone's spot-kick.
Melbourne City are 12121/1 to win the Grand Final and 5/2 to win their next game against Sydney FC, who are 11/10 with the draw 5/2.
View all Soccer betting