Michy Batshuayi's first-half goal proved enough for a below-par Belgium to squeeze to a 1-0 win over a Canada side playing their first World Cup match for 36 years on Wednesday.
Belgium goalkeeper Thibaut Courtois saved Alphonso Davies' early penalty and Batshuayi opened the scoring against the run of play in the 44th minute.
John Herdman's Canada, roared on by their vocal support, also had another strong penalty appeal turned down and dominated the second half to no avail.
Belgium were without injured record goalscorer Romelu Lukaku and struggled throughout with the pace of Canada's forwards.
But the 2018 semi-finalists clung on to move top of what could prove a hotly-contested Group F after Croatia and Morocco's goalless draw earlier on Wednesday.
Canada will head into their game against Croatia on Sunday still full of confidence after more than matching the team ranked second in the world, who next face Morocco.
The North Americans, matching Belgium in formation by playing three at the back, made a bright start and Jonathan David's low effort was deflected wide.
From the resulting corner, Tajon Buchanan's strike was blocked by Yannick Carrasco with his arm and a penalty was awarded after a VAR check in the 11th minute.
But Davies produced a weak effort which was saved low to his right by Courtois, before David lashed the rebound over the crossbar.
Belgium's ageing defence were struggling with the pace of the Canada attackers and Junior Hoilett got in behind before firing a shot wide.
The underdogs kept coming, as Courtois palmed away right wing-back Alistair Johnston's fierce drive and David headed off target.
Canada had a big penalty appeal turned down despite a VAR review when Axel Witsel was outpaced by Richie Laryea inside the area and then tripped his opponent.
Belgium grabbed the lead out of nothing when a simple long ball over the top from Toby Alderweireld found the run of Batshuayi who hammered home left-footed.
There was still time for Canada to create, and waste, another glorious opportunity before the break, as Laryea's low cross was fired over on the slide by Buchanan from six yards out.
Belgium coach Roberto Martinez made a double substitution at half-time to try and stem the tide, with Thomas Meunier replacing Carrasco and Everton youngster Amadou Onana coming into the midfield.
Canada could have levelled just minutes after the restart, though, as David headed wide from Stephen Eustaquio's delicious cross after the Porto midfielder had nutmegged Kevin De Bruyne.
Herdman's men continued to flood forward, but could not find the finishing touch required, with Buchanan miskicking horribly from the edge of the box.
The more men Canada committed, the more dangerous Belgium looked on the break and Laryea made a wonderful last-ditch tackle to deny Batshuayi a second goal.
Substitute Cyle Larin, the top scorer in Concacaf qualifying for the tournament, headed too close to Courtois in a frantic finale.
De Bruyne could have put the game to bed but blazed into the crowd, while Larin sent another header spinning over Courtois' bar as Belgium fell over the line. (AFP)
Belgium survive Canada scare to win World Cup opener
2022-11-24 HKT 08:40
2022-11-29 HKT 05:09
2022-11-29 HKT 02:34
2022-11-28 HKT 23:41
2022-11-28 HKT 22:06
2022-11-28 HKT 05:29
2022-11-28 HKT 03:28
2022-11-27 HKT 23:32
2022-11-27 HKT 21:26
2022-11-27 HKT 09:38
2022-11-27 HKT 05:17
2022-11-27 HKT 03:18
2022-11-26 HKT 05:35
2022-11-25 HKT 22:51
2022-11-25 HKT 07:53