English Premier League stars Romelu Lukaku and Kevin De Bruyne scored the goals as Belgium warmed up for Euro 2016 with a 2-1 victory against Switzerland in Geneva.
However, Marc Wilmots' side, one of the favourites for next month's competition in France, had to come from behind to win after Blerim Dzemaili had given the hosts a surprise lead.
Belgium, with Chelsea's Eden Hazard as captain in the absence of the injured Vincent Kompany, survived an early scare when Michael Lang sent an effort narrowly wide.
Thereafter though Wilmots' men dominated and Swiss goalkeeper Yann Sommer was tested by Lukaku, Dries Mertens and then De Bruyne all before the midway point of the first half, with Hazard instrumental.
It was against the run of play when Switzerland went ahead through Dzemaili's low right-footed finish after 31 minutes.
However, the lead lasted just three minutes as Everton striker Lukaku converted Mertens' cross from close range.
It was becoming end-to-end stuff and Belgium goalkeeper Thibaut Courtois was worked for the first time by Xherdan Shaqiri's 20-yard strike before Sommer denied Mertens again.
The second half was less frantic as each side went close with headers either side of the hour mark - Jan Vertonghen was too high for Belgium while Shaqiri sent his wide.
Sommer was well-placed to keep out Michy Batshuayi's shot before Switzerland were reduced to 10 men after 81 minutes when Haris Seferovic clashed with Vertonghen.
Two minutes afterwards, substitute Jordan Lukaku set up De Bruyne and the Manchester City winger arrowed a shot into the top corner of the net from just outside the penalty area.
Divock Origi might have given Belgium a two-goal winning margin but Sommer produced a fine save to deny him.