Espen Lie Hansen, Sander Sagosen and goalkeeper Torbjorn Bergrund laid the groundwork for the Norwegian win over Hungary, which in a shock upset had sent Olympic champions Denmark packing.
The Norwegians, whose highest world ranking of six was back in 1958, will meet either Spain or Croatia on Friday for a place in the final.
Meanwhile, powerhouse France kept their title defence on track seeing off a dogged Sweden 33-30 to punch their ticket to the semi-finals.
The hosts had trailed 16-15 at half-time in the quarter-final clash in the northern city of Lille as Lukas Nilsson powered Sweden with five first-half goals.
But thanks to some key substitutions such as Vincent Gerard, Kentin Mahe and Nedim Remili, the French battled back to keep their bid for a sixth world title on track.
With Denmark and European holders Germany already eliminated from the tournament, France appears to be in the driver's seat.
France next play Slovenia or Qatar on Thursday for a place in the final.