Yakin’s side gained control of the ball from the off and dominated as Hungary created little to nothing in attack during the first 45 minutes.
London-born Duah, who had only played 45 minutes for the Swiss before this game, was slipped in brilliantly by Aebischer before finishing beyond Gulacsi in the 12th minute.
On the stroke of half-time, left-wing back Aebischer cut in on his right foot to expertly place a strike beyond the diving Gulacsi from 20 yards.
In the 63rd minute, Varga missed a gilt-edge chance to halve the deficit as he steered his header wide.
But he responded well, meeting Szoboszlai’s curling ball three minutes later with a deft header to halve the deficit.
Despite being urged on by their fans, the resurgent Hungarians were unable to find an equaliser.
Having only recently returned to action following a cruciate ligament injury, Monaco striker Embolo was introduced off the bench in the 74th minute and pounced on a defensive error to slot home in the third minute of added time and settle the outcome.
The Swiss face Scotland next in Cologne on Wednesday – live on BBC One – while Hungary take on Germany earlier in the day.