Belgium came into the game at the Cardiff City Stadium ranked second in the world and having lost only one of their last 17 matches but Gareth Bale’s 25th minute goal – his 17th for his country – rewarded a heroic display.
Wales now have a three-point lead at the top of Group B with four games left to play and the victory means they will be among the top seeds for next month’s World Cup draw in Russia.
Belgium took to the field as news emerged that coach Marc Wilmots had been overlooked for the Schalke job he had been strongly tipped to take following this showdown between the top two teams in the group.
But the Red Devils were quickly into their stride and Christian Benteke was inches away from converting Dries Mertens’ cross.
Wales were struggling to get hold of the ball but Gareth Bale sped past Jan Vertonghen to win a corner which Hal Robson-Kanu headed wide.
But it was rare respite for Wales and Neil Taylor’s mistake allowed Mertens to set up Raja Nainggolan for a 20-yard shot which would have arrowed into the bottom corner of the net but for Wayne Hennessey’s strong hand.
Belgium were playing some inventive stuff around the edge of Wales’ penalty area and skipper Eden Hazard, who was at the heart of their attacks, fired a snapshot over.
Bale was desperately trying to impress on the occasion of his 50th cap and he was gifted his 17th international goal after 25 minutes when Nainggolan headed the ball back into his path and he beat Thibaut Curtois smartly after chesting the ball down.
Belgium began the second half on the front foot after replacing Mertens with Romelu Lukaku for the Everton man to form a physical front two pairing with Benteke.
Hazard’s corner almost found Benteke at the far post but Ashley Williams just did enough to protect his goal before Nainggolan and De Bruyne whistled efforts just wide of Hennessey’s goal.
Alderweireld fired wide before Hazard surged through and Chester completed a vital clearance.
Wales had mostly managed to stop the danger around their area but Belgium’s height made them a real threat from set-pieces and lofted balls into the box.
Vertonghen almost reached a De Bruyne corner which ran loose to the far post and then Chris Gunter showed excellent positional poise to deny the lurking Lukaku from under his own crossbar.
Every time a Belgian ball came into the Wales penalty area there seemed to be a defender in the way with skipper Williams leading by example.
Hennessey was grateful to fall on Ferreira-Carrasco’s cross as the limping Bale was reduced to the role of passenger by what appeared to be cramp and replaced by Sam Vokes with three minutes remaining.
But Wales held on amid incredible scenes to take over the top of Group B and move closer to a place in France next summer.
Hennessey, Gunter, Williams, Chester, Richards, Ledley, Taylor, Allen, Ramsey, Robson-Kanu (King 90), Bale (Vokes 87).
Courtois, Alderweireld (Carrasco 76), Denayer, Lombaerts, Vertonghen, Mertens (Lukaku 46), Nainggolan, Witsel, De Bruyne, Benteke, Hazard.
Felix Brych (Germany).