Canada dominated large periods of the opening hour and missed an early penalty, but a goal from Michy Batshuayi proved to be the difference as Belgium secured an hard-earned win in Al Rayyan.
With Croatia and Morocco playing out a goalless draw earlier in the day, Belgium sit at the top of Group F ahead of facing Morocco on Sunday.
Nevertheless, Canada will feel that they can still qualify for the knockout stages, despite missing out on another opportunity to score their first-ever goal in the competition at the fourth attempt.
The game started with Batshuayi, in place of the injured Romelu Lukaku, being given acres of space in the Canada half during the opening 60 seconds, the former Chelsea man eventually seeing a long-range shot comfortably saved by Milan Borjan.
However, Canada responded in fearless fashion, and the Maple Leafs were awarded a penalty when Yannick Carrasco was adjudged to have handled Tajon Buchanan's goalbound shot.
Alphonso Davies squandered the opportunity, though, with his low spot kick being saved by Thibaut Courtois before the rebound was fired over the crossbar.
Despite that disappointment, it remained all Canada, and Junior Hoilett was the next to go close as the winger sent a low effort wide of the far post.
Belgium gradually grew into the game, forcing Canada onto the back foot, but it was not long before the 2018 third-placed side needed to rely on Courtois yet again to prevent Alistair Johnston's strike from finding the top corner.
As half time approached, Canada would have been frustrated not to be ahead, and coach John Herdman would have been aghast when Belgium took the lead out of nothing, a long ball over the top finding Batshuayi who made no mistake with a confident finish from inside the area.
There was still time for Canada to threaten an equaliser before the break, but Buchanan could only divert the ball over the crossbar on the slide after meeting a low cross.
Although his side held a narrow lead, Roberto Martinez reacted to Belgium's out-of-sorts display by making two alterations, yet it did little to prevent Canada maintaining the momentum.
Jonathan David should have done much better with a header after being found by an outswinging cross, the first of several which were delivered into the penalty area.
However, with Canada throwing men forward, Belgium soon began to take advantage of the space at the other end, only for stray passes and players wanting too much time costing them when the openings were there to double their lead.
With 10 minutes left, Johnstone created a chance for Canada substitute Cyle Larin, who did everything right with his header only to see Courtois make a comfortable save to his right.
Kevin De Bruyne endured somewhat of an off night for Belgium, and the playmaker should have at least found the target when lashing a venomous effort towards goal when in space on the edge of the area.
Nevertheless, a below-par showing from the star man and his team mattered little as they eventually got over the line, Martinez sure to treat this occasion as a wake-up call ahead of what he will hope are better performances to come.