Admir Mehmedi gave the Swiss the lead early on at the Den Dreef Stadion in Leuven with a crisp low finish past Belgium goalkeeper Simon Mignolet.
Batshuayi equalised for Belgium four minutes into the second half with an angled finish after an intelligent pass from Youri Tielemans.
The 27-year-old striker then took his tally to 21 goals for Belgium, scoring his second of the game with a shot on the turn from close range to seal victory with 20 minutes left.
Belgium struggled to find their rhythm in the first half as they failed to register a single effort on target during a dismal 45 minutes, and Switzerland capitalised.
A long punt forward was accidentally headed backwards by Sebastiaan Bornauw which allowed Mehmedi to break clear and the Wolfsburg forward elegantly struck a left-footed shot across goal into the corner of the net.
Mignolet's goal was under pressure again on the half hour and he used his body to good effect at the near post to keep out Mehmedi's close-range effort.
Belgium flickered into life on the stroke of half-time when Dennis Praet teased a cross into the penalty area but Switzerland goalkeeper Yvon Mvogo strongly beat the ball away.
The Red Devils showed greater intensity after the break and substitute Tielemans provided the telling pass for Batshuayi, who beat the offside trap and ruthlessly struck a low shot beyond Mvogo.
The forward superbly controlled a difficult cross from substitute Thomas Foket inside the area before he hooked the ball home.
Switzerland had their moments in the remainder of the game but could not find an equaliser as Roberto Martinez's side held on for an underwhelming victory.
What does it mean? Belgium labour against solid Swiss
The last time the two sides met two years ago, a Haris Seferovic hat-trick gave Switzerland a thrilling 5-2 comeback win which secured their place in the Nations League finals. This low-key friendly, though, never came close to hitting those heights.
Belgium were without some of their stellar names and it showed with a scrappy display containing just seven attempts, with the two goals being their only efforts on target. Switzerland were far more threatening going forward, having 12 shots and completing more passes (632 to 594).
Clinical Batshuayi puts name in the frame
Batshuayi had just two sniffs at goal and showed his predatory instincts with two goals. For the majority of the game he was starved of service and managed just three touches inside the penalty area in the whole 90 minutes.
He must come into Martinez's thinking for their next two Nations League games, but may have to settle for the bench with Romelu Lukaku and Christian Benteke among his stiff competition.
Hazard fails to fill sibling's boots
With Eden Hazard ruled out because of a positive coronavirus test, a portion of Belgium's attacking impetus was supposed be led by his brother Thorgan. The Borussia Dortmund attacking midfielder saw plenty of the ball - taking 101 touches and making a team-high 79 passes at an accuracy of 84.8 per cent - but failed to trouble the Swiss defence, creating just one chance.