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.
"Was it technically our 'worst game', yes, when you measure the performance," admitted Belgium coach Roberto Martinez. "Was it the 'worst game', no, because we won.
"We defended well and we needed our goalkeeper."
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.
"They showed tonight that they do belong here. It's been a long time since we've been back," said Herdman, the first coach to lead teams at women's and men's World Cups.
"I'm sure they (the fans) walked away proud and feeling like we are a football nation.
"I think this group stage is wide open now after the Croatia-Morocco result."
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.
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.