Trailing 2-1 to Zurich from last week's first leg in St Gallen, Hearts brought this Europa League play-off tie back to Scotland with a fighting chance. By the end of the 90 minutes in Edinburgh, it was the Swiss champions who advanced in this competition after a 1-0 win – but it really could have been the Jambos' night
Robbie Neilson's men were so utterly dominant in the first 45 minutes that the tie should have been swung into Hearts' favour by half time. They saw 65 per cent of the ball, forced six corners and had six attempts on goal. Zurich were so limp and lacklustre that they resembled a lower-league team, not one that topped their domestic division last season. However, Hearts could not make their superiority count, and paid the price when the game turned on its head on 54 minutes when Jorge Grant was sent off for simulation.
In football, you have to take your chances, especially on the continental stage. Grant's dismissal – a second yellow card – allowed Zurich to find a foothold in a match that until then had totally passed them by, and they used their extra impetus and numerical advantage to put Hearts to the sword. Substitute Fabian Rohner's goal on 81 minutes was the ultimate party-pooper.
This was the first European match to take place at Tynecastle in six years, with all involved with the club hoping for a much better outcome than in 2016 when Maltese minnows Birkirkara defeated Hearts 2-1 in Gorgie to bundle them out of the Europa League qualifiers.
A lot has happened since then: Robbie Neilson, in charge that night, left and then returned. The club has suffered relegation, the ignominy of losing to Brora Rangers in the Scottish Cup, a return to the cinch Premiership, two Scottish Cup finals and last season's storming charge into third place in the league that set up this tie.
A packed Tynecastle crackled under a moody summer evening's sky. The teams emerged to a light show – not quite Celtic's disco effort, but it enhanced an already feverish atmosphere. Zurich went into a pre-match huddle, backed by a noisy 200 or so flag-wielding supporters in the Roseburn Stand. The stage was set for Hearts to come flying out the traps and peg their Swiss guests back right from the very first whistle.
Despite the atmosphere, and seeing most of the ball, Hearts were unable to land a tangible blow on Zurich in the opening ten minutes. Neilson, partially hemmed into his technical area by an electronic advertising board, hung over it looking pensive. Zurich were sitting deep, content to defend the overall lead and hit Hearts on the break.
Hearts' first shot on target came 14 minutes in, Alan Forrest taking down a lovely Alex Cochrane crossfield pass before cutting inside and unleashing a left-footed shot that required Zurich keeper and captain Yanick Brecher to make a sprawling save.
Hearts were clearly targeting Zurich's left side of defence. Forrest was set free on two further occasions in the first 20 minutes, but his final product wasn't sufficient.
Zurich were dropping further back. Their coach, Franco Foda, urged them up the pitch, sensing control of the match slipping away from them. From a 26th-minute corner, Kye Rowles rose highest but his header was not clean and landed into the grateful grasp of Brecher.
Then a big chance came Hearts' way, on 34 minutes. It had been brewing. Liam Boyce and Lawrence Shankland linked up neatly and the ball was shuttled into the path of Forrest, free in the penalty box. His shot was going in, no doubt about it, had Mirlind Kryeziu not hurled himself in front of it. The defender celebrated as if he'd scored himself.
Hearts were now in complete and utter control. Cammy Devlin, in midfield, was bossing it. Another chance would come before the interval. On 42 minutes, Forrest stood the ball up to the back post but the unmarked Boyce got it all wrong, heading the ball into the ground and over the bar. It was a bad miss. Zurich hobbled over the half-time line, fortunate not to be behind for their limp display.
Foda changed it up, introducing Marc Hornschuch and Italy internationalist Wilfried Gnonto, understandably unimpressed with what his team had offered thus far. The changes made a difference, with Zurich more proactive at the beginning of the second half, although Barrie McKay had the first effort on goal after the restart, his strike held by Brecher.
The match then somersaulted on 54 minutes. Grant, booked early in the first half for mistimed tackle, tumbled in the box under a challenge. Referee Lawrence Visser took advice from his assistant and deemed it a dive rather than a penalty, flashing a second yellow and a red to the midfielder. Down to ten men now, Hearts would have to do this the very hard way.
The numerical advantage altered Zurich's outlook on life. They had a spring in their step, Gnonto's movement was becoming an issue for Hearts and the teenager's curled effort brought keeper Craig Gordon into action. Striker Aiyegun Tosin was brought on to add beef to their attack. Hearts had lost the wind from their sails.
A Zurich goal was coming. The clock struck 81 minutes and Gnonto, the game-changer, drove into the box and cut the ball back to Rohner. He slammed the ball high into the net, and slammed the door shut on Hearts' Europa League hopes.
At least Hearts can still look forward to European football until November. They drop into the Conference League, where they could be seeded third, and will have six more matches against foreign opposition. It's just a shame they could not have made this a night to remember.