Efter att Everton slog till mot Lukakus våldsamt slagna öppnare utanför lådan, jämnades Bournemouths Joshua King med marken.
Veton Berisha tjänade på statiskt försvar som Norge då ledde, men Hazard skickligt leds i en equalizer och Laurent Ciman fick vinnaren.
Samtidigt drog Ryssland, som inleder sin Euro 2016 kampanj mot England på lördagen, 1-1 med Serbien.
De nekades seger av en 88-minuters equalizer från Newcastle strejker Aleksandar Mitrovic, efter att ha tagit ledningen genom Artem Dzyuba i den 85: e minuten.
Tidigare drabbades Tjeckien av ett 2-1 hem nederlag av Sydkorea i sin sista uppvärmning spel.
Yoon Bit-garam och Suk Hyun-jun gav bort sidan en 2-0 halvtid ledning innan Marek Suchy fick en tillbaka och Theodor Gebre Selassie skickades iväg för ett andra gult kort.
Matchen slutar, Belgien 3, Norge 2.
Andra halvlek, Belgien 3, Norge 2.
Foul av Marouane Fellaini (Belgien).
Ruben Jenssen (Norge) vinner en frispark i defensiven.
Foul av Divock Origi (Belgien).
Jonas Svensson (Norge) vinner en frispark på högerflygeln.
Hörnet, Norge. Förföljd av Marouane Fellaini.
Substitution, Belgien. Mousa Dembélé ersätter Eden Hazard.
Romalu Lukaku (Belgien) vinner en frispark i den defensiva halvan.
Foul av Ruben Jenssen (Norge).
Laurent Ciman (Belgien) vinner en frispark i den defensiva halvan.
Foul av Valon Berisha (Norge).
Försök missade. Marouane Fellaini (Belgien) huvudet från mycket nära håll missar till höger. Hjälpt av Eden Hazard med ett kors som följer ett hörn.
Substitution, Norge. Alexander Sørloth ersätter Joshua King.
Hörnet, Belgien. Översatt av Jonas Svensson.
Substitution, Belgien. Divock Origi ersätter Dries Mertens.
Försök missade. Valon Berisha (Norge) höger fotade skott utanför lådan missar till höger. Hjälpt av Ruben Jenssen.
Försöket räddades. Kevin De Bruyne (Belgien) höger fotade skott från utsidan boxen sparas i mitten av målet.
Jonas Svensson (Norge) visas det gula kortet för en dålig foul.
Eden Hazard (Belgien) vinner en frispark i anfallshalvan.
Foul av Jonas Svensson (Norge).
Jordan Lukaku (Belgien) visas det gula kortet för en dålig foul.
Foul av Jordanien Lukaku (Belgien).
Markus Henriksen (Norge) vinner en frispark i defensiven.
Handboll av Ruben Jenssen (Norge).
Offsides, Belgien. Thibaut Courtois försöker en genom boll, men Kevin De Bruyne fångas offside.
Substitution, Norge. Ruben Jenssen ersätter Stefan Johansen.
Radja Nainggolan (Belgien) vinner en frispark i den defensiva halvan.
Foul av Markus Henriksen (Norge).
Mål!  Belgien 3, Norge 2. Laurent Ciman (Belgien) rubrik från mycket nära till mitten av målet. Hjälpt av Toby Alderweireld med ett huvudpass efter ett hörn.
Substitution, Norge. Stefan Strandberg ersätter Ole Selnaes.
Substitution, Norge. Iver Fossum ersätter Veton Berisha.
Hörnet, Belgien. Sammankallad av Haitam Aleesami.
Försök blockerat. Romalu Lukaku (Belgien) vänster fotade skott från mitten av lådan är blockerad. Hjälpt av Kevin De Bruyne med en genomgångsboll.
Försök missade. Dries Mertens (Belgien) höger fotade skott från höger sida av sex yard box är för hög. Assisterad av Jordanien Lukaku.
Försök missade. Jordan Lukaku (Belgien) vänster fotade skott från en svår vinkel på vänster missar till höger. Hjälpt av Romalu Lukaku.
Mål!  Belgien 2, Norge 2. Eden Hazard (Belgien) huvudet från mitten av rutan till nedre vänstra hörnet. Hjälpt av Kevin De Bruyne med ett kors.
Hörnet, Norge. Förföljd av Toby Alderweireld.
Försök blockerat. Joshua King (Norge) höger fotade skott från höger sida av lådan är blockerad. Hjälpt av Markus Henriksen.
Substitution, Norge. Valon Berisha ersätter Adama Diomande.
Romelu Lukaku och Eden Hazard gjorde mål när Belgien kom bakifrån för att slå Norge i sitt sista spel före Euro 2016.