Hungary’s ex-West Brom and Fulham player Zoltan Gera shot at Almer but Kiraly was the first keeper fully extended as he needed to produce a fine low save to deny Zlatko Junuzovic.
Arnautovic broke clear down the right after receiving a quick return pass following a neat flick but Martin Harnik was unable to make the most of his low ball across goal.
The momentum started to turn just before the interval and Hungary might have taken the lead as Balazs Dzsudzsak raced onto a Kleinheisler pass but his first touch was poor and he shot wide.
Attila Fiola tried his luck early in the second half but missed the target before Dzsudzsak tested Almer from long range.
Austria lost Junuzovic to injury just before the hour and Hungary’s endeavour was rewarded as Szalai exchanged passes with Kleinheisler and slipped a shot under the advancing Almer after 62 minutes.
Things went from bad to worse for Austria as they were reduced to 10 men four minutes later. Martin Hinteregger actually thought he had equalised with a long-range strike after a scramble in the area but the whistle had been blown for a challenge by
Dragovic on Tamas Kadar.
Austria protested but their woes were soon compounded as Dragovic, booked in the first half, was shown a second yellow card and then a red.
That sapped the spirits of Austria and they were caught again three minutes from time as Hungary broke from deep and Stieber chipped over Almer to spark wild celebrations.