The Belgium captain, who also plays for English Premier League champions Manchester City, stroked home a long-range shot a minute before half-time to hand his side the lead after the goalkeeper was caught in no-man's land after a defensive mix-up.
It was a cruel blow to English-born Matija Sarkic, who had kept a quick-paced Belgium attack at bay for almost the entire half with a remarkable series of saves, notably from Yannick Carrasco, who had four clear chances to open the scoring but was denied each time.
Leandro Trossard tucked away a penalty with the last kick of the game to double the scoreline.
Belgium have a second warm-up friendly, against Luxembourg in Brussels on Saturday, before heading to Germany next week.
Christian Eriksen scored a stunning late winner to give Denmark a 2-1 victory over Sweden in a lively friendly in Copenhagen.
It took just over a minute for the home side to break the deadlock as Sweden's defence was caught napping at the game's first corner, and Eriksen found Pierre-Emile Hojbjerg at the near post for an easy finish.
Sweden struck back quickly through Alexander Isak, who collected a blocked shot from Jens Cajuste and slammed it past Frederik Ronnow in the Danish goal seven minutes later.
The 32-year-old Eriksen, who collapsed due to a heart attack on the same pitch in Denmark's Euro 2020 opener against Finland, pulled the strings throughout, and his curling, dipping strike in the 86th minute gave the Danes a well-deserved win.