Alphonso Davies initially put Canada ahead with the fastest goal of the tournament so far, but two Andrej Kramaric goals either side of Marko Livaja and Lovro Majer efforts earned Croatia a deserved win.
The 2018 runners-up now sit top of Group F on goal difference ahead of Morocco, with Belgium one point adrift of the pair in third and Canada now out of the tournament with a game to spare.
For all their industry and creativity, Canada were poor in the final third against Belgium, putting the nation at risk of becoming just the second team in World Cup history to go their first five matches without scoring a goal.
However, it took just 67 seconds to ensure that the record in question was not equaled. Tajon Buchanan delivered an exquisite cross from the right to find Davies, who timed his run to perfection to power a header into the net from 10 yards.
As well as being momentarily stunned, Croatia also struggled to create anything clear-cut in response, Canada snuffing out the rare openings which were created.
Just before the half-hour mark, Croatia thought that they were level when Kramaric found the far bottom corner with a cool finish from 10 yards, but there was a marginal offside in the build-up.
Croatia created a similar chance soon afterwards which was clearly onside, only for Livaja's effort to be well kept out by Milan Borjan at his near post.
Nevertheless, moments later, the European nation were level. Ivan Perisic played a clever ball into the path of Kramaric, who made no mistake in finding the far corner from an acute angle.
While Canada were not necessarily on the rack, Croatia were beginning to dominate, and it came as little surprise when they doubled their advantage through a drilled low finish from Livaja, similar to Lionel Messi's effort against Mexico on Saturday night only with his right foot.
John Herdman made two changes to his Canada XI at half time and one of the introductions - Jonathan Osorio - almost marked his arrival on the pitch with a wonder goal, the ball agonisingly drifting wide of the far post after he let fly from the edge of the area.
That near miss represented a wake-up call to Croatia and they should have put Canada on the brink of elimination before the hour mark, only for Kramaric to fire too close to Borjan from 12 yards after being teed up by Luka Modric.
Back came Canada who again troubled Dominik Livakovic from distance, the Croatia stopper managing to tip Jonathan David's superb strike from 25 yards over the crossbar.
However, Croatia effectively made sure of the points as the game entered the final quarter, Kramaric controlling a cross-field pass from Perisic before finding the far bottom corner of Borjan's net with a perfectly-executed finish.
Croatia should have had a fourth when Perisic found space inside the area, but the national team legend and Marcelo Brozovic on the rebound were both denied by Borjan.
Junior Hoilett almost reduced the deficit in added-on time, his long-range effort going marginally wide, but Croatia got the fourth that their played deserved in the fourth minute of added-on time.
After a mistake from Kamal Miller, Mislav Orsic ran clear on goal before giving Majer the simple task of converting from close range to cap off one of the more impressive performances of the tournament.