Romelu Lukaku missed a flurry of second-half chances for Belgium, striking the post and twice failing to find the net with the goal seemingly left agape.
It ended a disenchanting campaign for a group of outstanding individual Belgian talents that must now be nearing a generational shift, with the installation of a new manager likely.
For their opponents, though, a 0-0 tie was enough to be sure of advancing, joining group winners Morocco in the last-16.
After a flat start to their tournament, Belgium knew they in all likelihood needed to beat their fellow 2018 semi-finalists to have any hope of progressing.
Roberto Martinez made a number of changes to his side, including leaving out captain Eden Hazard, but there were few signs of urgency in the first half.
It looked as if Luka Modric would have the chance to put Croatia ahead from the penalty spot after Andrej Kramaric was felled 15 minutes into the encounter. But a protracted VAR review showed a sliver of Dejan Lovren’s sleeve offside in the build-up, forcing Anthony Taylor to overturn his original decision after a consultation with the pitchside monitor.
The extended delay rather punctured the contest, with the rest of the first half low on both energy and incident. It was little surprise that Martinez felt compelled to act at the interval, introducing Lukaku in the place of Dries Mertens.
The striker, who arrived at the tournament having played little football this season, made a significant impact, and twice had outstanding opportunities to put Belgium ahead. Lukaku first struck the post after the ball spun his way on the hour, before guiding a header over the crossbar from close range.
The chances continued to come for the striker, but his lack of match sharpness perhaps cost his side, Lukaku twice failing to find the target with the goal vacant in the dying embers to condemn Belgium to a galling early exit from Qatar.