Belgium had started as the favourites against Wales, despite major problems in defence. Team coach Marc Wilmots missed both central defender Thomas Vermaelen (suspended) and left winger Jan Vertonghen (ankle unjury), two pillars of strength in the previous games.
Jordan Lukaku, the younger brother of Everton striker Romelu, replaced Jan Vertonghen, while another youngster, Jason Denayer of Galatasaray, took the place of Vermaelen. Both hardly have any experience in the Belgian national team but are very fast.
There were also concerns about in-form Eden Hazard, who steered Belgium past Hungary on Sunday. Hazard was nursing a thigh injury but did not want to miss the match, a kind of home game for him as Lille was the club where he emerged as a young top player at 16. Wales were at their full strength, counting on Gareth Bale and Gordon Ramsey in attack to surprise the Belgian defence.
Wales wipe out Belgian lead
Some 100,000 Belgians had flocked to Lille for the occasion, but only a fraction of them could actually attend the match. They were confident about the outcome, though Belgium hadn't been able to move past Wales in their last two outings: 0-0 in Brussels and 1-0 in Wales in the Euro 2016 qualifying round.
Belgium took a strong start and deservedly took the lead on 13 minutes with a thundering shot from Roma midfielder Radja Nainggolan (photo). Wales were in trouble, but gained ground later on with skipper Ashley Williams heading home the equaliser, after some poor Belgian defending.
Wales yet again haunting the Belgians
Belgium's Red Devils took a strong start again after the break, but missed their opportunities. Hal Robson-Kanu didn't. He received the ball, put the Belgian defender Thomas Meunier on the wrong foot with a technical touch and put Wales ahead, 2-1 on 55 minutes - but where were the other defenders on that occasion? Kanu had the time to comb his hair for the photo, just before scoring.
The goal was a game-changer. Wales also had the mental lead now and took control of the match. Belgium tried to push ahead and had more ball possession, but seemed helpless despite a couple of chances.
The equaliser didn't come, on the contrary. It was Sam Vokes who decided the match with a strong header, 3-1. Wales yet again proved to be the bogey opponent of the Belgians.
Even the star players Eden Hazard (Chelsea) and Kevin De Bruyne (Manchester City) couldn't change this. Hazard had probably imagined things in a different way in "his" Lille, but Wales deserved the win and confirmed their status as revelations at Euro 2016. Meanwhile, the Belgians players could hardly believe what had happened.