The result means Group A leaders Belgium are uncatchable with 25 points from nine matches ahead of their last qualifying game at home to Wales on Tuesday.
It ends a wretched 12-year period during which they have also failed to reach the finals of the European Championship.
Lukaku, on loan at Everton from Chelsea and replacing the injured Christian Benteke for Belgium, had several thousand visiting fans dancing on the half-empty terraces at the Maksimir stadium after scoring in the 15th and 38th minutes.
Second-half substitute Niko Kranjcar grabbed a late consolation goal for the Croatians.
“I’m just really happy for the team,” the towering Lukaku told Belgian television. “We always believed we could qualify and now it’s happened.
“We just want to finish now on the right note against Wales.”
Team mate Eden Hazard said Lukaku had given coach Marc Wilmots a selection headache for future matches, with Benteke possibly fit to start on Tuesday.
Wilmots said he now wanted to secure a Belgian record haul of qualifying points by beating Wales.
“If Tuesday’s party is going to be good, then we have to take it seriously and win,” he added.
Croatia have 17 points and are assured of a runners-up finish and a likely berth in next month’s playoffs but were jeered by their fans after a lacklustre performance.
The home team needed a win to have any chance of overhauling Belgium at the top but coach Igor Stimac deployed a conservative 4-5-1 formation with wingers Ivan Perisic and Ivan Rakitic operating behind lone striker Mario Mandzukic.
Wilmots’s team took the lead when Perisic gave the ball away to Steven Defour who fed Lukaku and he raced clear of centre backs Vedran Corluka and Dejan Lovren before rounding keeper Stipe Pletikosa.
Pletikosa then kept out a close-range header from Marouane Fellaini but could not prevent Lukaku muscling through to score a dazzling second goal.
Having superbly dinked the ball over Lovren inside his own half, the 20-year-old galloped past midfielder Mateo Kovacic, rounded the advancing Pletikosa and walked the ball into an empty net as bewildered home fans started leaving the ground in droves.
Belgium almost scored a third goal in the 77th minute when Pletikosa denied Fellaini from three metres after a darting run and cross by Hazard.
Kranjcar pulled one back for Croatia by volleying a fierce shot into the roof of the net from 14 metres after keeper Thibaut Courtois parried a close-range effort by Nikola Kalinic and Daniel Van Buyten could only partially clear the rebound.
Stimac said his side deserved at least a draw.
“We controlled the game at the start, dominated, but then made an incomprehensible gift to the opponents and they scored. It was a shock, it upset us,” he said.
Kranjcar said Croatia should be proud not to have fallen apart in the second half.
“That should be our inspiration for the next game and I believe we’ll earn a place in the playoffs,” he added.
(Writing by Zoran Milosavljevic, additional reporting by Zoran Radosavljevic in Zagreb, Philip Blenkinsop and Robert-Jan Bartunek in Brussels; editing by Tony Jimenez)