From their pair of NSL Cups in the ‘90s to their recent giant-killing exploits, Heidelberg United have a long history of turning heads with national glory on the line.
But the Australia Cup quarterfinals have long been the Melbourne Macedonians’ downfall, as they’re 0-4 at this phase of the competition. This year, they look to change that by pulling off back-to-back cupsets, and they’ve got Wellington Phoenix in their crosshairs (Tuesday, 7.30pm AEST).
However, these Kiwis are overachieving in their own way and could match their deepest run to date. Before the only interleague bout of the round gets going, let’s review how these sides made it here and see who has the edge going in.
(Photo by Scott Gardiner/Getty Images)
Heidelberg put Wanderers to the sword
Heidelberg United opened their Australia Cup campaign with a battle of regulars versus debutantes as they hosted Weston Bears. The Bergers welcomed their Newcastle guests to the national stage with an overwhelming flood of first-half pressure, culminating in a 26th-minute score when Asahi Yokokawa scored off a close-range dish from Peter Klaassen.
The Bears saw a lot more of the ball in the second half, but Heidelberg keeper Yaren Sözer was on an absolute heater, making six saves throughout the night. Ultimately, the Victorians’ bench put it to bed, as Bul Jauch assisted Max Bisetto in the 87th to cement a 2-0 win.
Bul Juach of Heidelberg United FC celebrates kicking a goal during the Australia Cup 2025 Round of 16 match between Heidelberg United FC and Western Sydney Wanderers FC at Olympic Village, on August 12, 2025 in Melbourne, Australia. (Photo by Morgan Hancock/Getty Images)
Things could have easily gone sour from there. On top of drawing Western Sydney Wanderers as their next opponent, Heidelberg had to do it on the heels of a devastating collapse against South Melbourne in the Dockerty Cup final. Fortunately for the hosts, the Wanderers faceplanted out of the gate. On a scrambling counter in the 13th minute, Jauch recovered the ball and tried to re-center it. Instead of finding a teammate, he found opposing centre-back Alex Bonetig, who ran towards the net at the wrong time and slotted it in.
The Warriors’ fortunes further grew a little over fifteen minutes later, when Alex Gersbach instinctively put his hand up in response to Akiel Raffie’s venomous shot. That handed Heidelberg a penalty, and though Jauch didn’t fool Lawrence Thomas with his shot, the ball went off Thomas’s hand and into the net anyway.
From there, the Macedonians spent the bulk of the match protecting a two-goal lead, which they managed in spite of only possessing the ball about 30% of the time. Sözer was once again absolutely stalwart, making four saves in the first half and two more in the second. By stoppage time, the win was securely in the bag, but when presented the opportunity to make a fast-breaking counter, Heidelberg lapped it up. Yokokawa sent ahead a through ball from midfield, Anthony Lesiotis met it and fired from the edge of the box, and with that goal, the Bergers completed a 3-0 cupset.
Phoenix refuse to die
Of all the A-League teams left, none have had a longer road than Wellington Phoenix. After grinding out a 1-0 win in the playoff against Brisbane Roar, the Nix had to start the tournament proper against arch-rivals and fellow Darwin survivors Perth Glory.
Under a torrential downpour of rain, the Kiwis struck first, as Lukas Kelly-Heald scored off the rebound to nullify Oli Sail’s save. They held that lead for a good long while, even with Perth seeing significantly more of the ball, but in the dying embers, the Glory finally shone through. On a sequence of passes in the Wellington box, last year’s Australia Cup assist king Taras Gomulka found Adam Taggart, who equalised from point-blank range to force extra time.
When no further scoring ensued, we got our first penalty shootout of the tournament. For a while, it looked like Kazuki Nagasawa’s opening miss would spell the end for Wellington, but when presented with the chance to end things, Perth midfielder Brandon O’Neill choked and missed. That allowed Lachlan Candy the chance to equalise, and after a couple more rounds going blow for blow, ex-Central Coast Mariner Brian Kaltack got his West Coast stint off to a poor start by launching it over the top. From there, it all came back to Kelly-Heald, who fooled Sail into going the wrong way to seal an 8-7 win in the shootout.
That set the Nix up for what, in theory, should have been a cakewalk against Nunawading City, a team from three tiers down the Australian pyramid. However, this squad was coming off one off the all-time great performances in Australia Cup history. After heading all the way up north to face Darwin Olympic, Stuart Edgar scored a hat trick, Denis Daluri made four assists, and Nunawading put themselves in the history books with a record-breaking 9-0 win.
That tenacity showed against the Nix, as Nuna created a few decent chances for themselves and kept Wellington out of the net for a good long while despite facing a barrage of shot attempts. However, at the last possible opportunity, the Kiwis finally broke through. Four minutes into stoppage time Carlo Armiento received the short corner and served up a cross, which Hideki Ishige headed home to finally give Wellington the breakthrough on the team’s 17th try. These Nunawading Niners will live on for generations as an example of Australia Cup magic, but in the short term, it was the Nix who survived.
Black and yellow brawl: the keys to victory
Picking a favorite here is trickier than usual for this sort of contest. If there’s one thing Wellington will have going for them, it’s fuel in the tank. The Nix have had the whole week to prepare for this matchup, whereas Heidelberg had to play Oakleigh Cannons over the weekend and balance this Cup with the chase for the NPL Victoria premiership. That opens the door for a situation like South Melbourne vs. Macarthur in last year’s semifinals, where the A-Leaguers gradually wear the semi-pros down and then pounce late for the score they need.
Meanwhile, Heidelberg are the romantic pick to win, but they’ve also genuinely been the far more convincing fighters from bell to bell. No A-League side, no matter what kind of lineup they send out, should take until the last setpiece to score a single goal against a team about to fall into the Victorian Stage Leagues. The fact that the Nix struggled so hard while Heidelberg spanked a team that made the A-League finals last year says everything, and if the Macedonians keep playing like they have at both ends, this could be a heads-on-pikes result in their favor.
// This is called with the results from from FB.getLoginStatus(). var aslAccessToken = ''; var aslPlatform = ''; function statusChangeCallback(response) { console.log(response); if (response.status === 'connected') { if(response.authResponse && response.authResponse.accessToken && response.authResponse.accessToken != ''){ aslAccessToken = response.authResponse.accessToken; aslPlatform = 'facebook'; tryLoginRegister(aslAccessToken, aslPlatform, ''); }
} else { // The person is not logged into your app or we are unable to tell. console.log('Please log ' + 'into this app.'); } }
function cancelLoginPermissionsPrompt() { document.querySelector("#pm-login-dropdown-options-wrapper__permissions").classList.add('u-d-none'); document.querySelector("#pm-register-dropdown-options-wrapper__permissions").classList.add('u-d-none'); document.querySelector("#pm-login-dropdown-options-wrapper").classList.remove('u-d-none'); document.querySelector("#pm-register-dropdown-options-wrapper").classList.remove('u-d-none'); }
function loginStateSecondChance() { cancelLoginPermissionsPrompt(); FB.login( function(response) {
}, { scope: 'email', auth_type: 'rerequest' } ); }
// This function is called when someone finishes with the Login // Button. See the onlogin handler attached to it in the sample // code below. function checkLoginState() { FB.getLoginStatus(function(response) {
var permissions = null;
FB.api('/me/permissions', { access_token: response.authResponse.accessToken, }, function(response2) { if(response2.data) { permissions = response2.data; } else { permissions = []; }
var emailPermissionGranted = false; for(var x = 0; x < permissions.length; x++) { if(permissions[x].permission === 'email' && permissions[x].status === 'granted') { emailPermissionGranted = true; } } if(emailPermissionGranted) { statusChangeCallback(response); } else { document.querySelector("#pm-login-dropdown-options-wrapper__permissions").classList.remove('u-d-none'); document.querySelector("#pm-register-dropdown-options-wrapper__permissions").classList.remove('u-d-none'); document.querySelector("#pm-login-dropdown-options-wrapper").classList.add('u-d-none'); document.querySelector("#pm-register-dropdown-options-wrapper").classList.add('u-d-none'); } }); }); } window.fbAsyncInit = function() { FB.init({ appId : 392528701662435, cookie : true, xfbml : true, version : 'v3.3' }); FB.AppEvents.logPageView(); FB.Event.subscribe('auth.login', function(response) { var permissions = null; FB.api('/me/permissions', { access_token: response.authResponse.accessToken, }, function(response2) { if(response2.data) { permissions = response2.data; } else { permissions = []; } var emailPermissionGranted = false; for(var x = 0; x < permissions.length; x++) { if(permissions[x].permission === 'email' && permissions[x].status === 'granted') { emailPermissionGranted = true; } } if(emailPermissionGranted) { statusChangeCallback(response); } else { document.querySelector("#pm-login-dropdown-options-wrapper__permissions").classList.remove('u-d-none'); document.querySelector("#pm-register-dropdown-options-wrapper__permissions").classList.remove('u-d-none'); document.querySelector("#pm-login-dropdown-options-wrapper").classList.add('u-d-none'); document.querySelector("#pm-register-dropdown-options-wrapper").classList.add('u-d-none'); } }); }); }; (function(d, s, id){ var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) {return;} js = d.createElement(s); js.id = id; js.src = "https://connect.facebook.net/en_US/sdk.js"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));