Wales were on fire on Friday as they stunned favoured Belgium 3-1 in the Euro 2016 quarter-finals for their best ever showing at a major football event.
Captain Ashley Williams, Hal Robson-Kanu - without a club after being released out of his contract at second tier Reading - and substitute Sam Vokes reversed Belgium's early lead from Radja Nainggolan.
Wales bettered their previous best showing, a quarter-final from the 1958 World Cup, as their dream run continues in their first ever participation at the Euros.
They are the first British team in a big semi-final since then hosts England at Euro 1996.
Wales next play Portugal in Lyon on Wednesday for a place in the July 10 final in Saint-Denis but will have Arsenal's Aaron Ramsey and defender Ben Davies suspended.
Highly fancied Belgium, the second-ranked team in the world who had however also lost against Wales in qualifying, paid the price for sitting back too much after the opening goal against a passionate opponent.
Their large fan contingent - making up a majority of the 45,963 in Lille just 20 kilometres off the Belgian border - were left to watch the defeat in shock while the Wales supporters celebrated wildly with their team.
"I think you dream about nights like this but dont know if you are good enough or lucky enough. It is indescribable. Four years ago we were as far away from this as you could be," Wales manager Chris Coleman said.
"We bossed the first half, they couldn't work out our rotations. not many teams can do that against Belgium. When we scored the second we put them on the back foot. We took the game to Belgium for long periods."
Belgium coach Marc Wilmots brought on Jason Denayer for suspended centre back Thomas Vermaelen and replaced injured left back Jan Vertonghen with Jordan Lukaku while winger and captain Eden Hazard was fit to play after a thigh muscle scare.
Wilmots said the defensive changes were one reason for defeat.
"We played excellent 20-25 minutes but out of nowthere we dropped 15 metres. There was a breakdown in communication. I am not a magician. I had to replace 50 per cent of the back line. We made mistakes we should not have made," he said.
Wilmots added he will decide on his personal future as coach within the next days.
"I will make my decision after euro, I won't make it straight after the game. I am going to take my time," he said.
Belgium made their presence felt from the kick-off in the drizzle, and had a huge triple chance eight minutes into the game.
Romelu Lukaku crossed from the left but the unmarked Yannick Carrasco was denied by goalkeeper Wayne Hennessey at the far right side, Thomas Meunier blocked on the rebound and the ensuing effort from Eden Hazard deflected over the bar.
They went 1-0 up in the 13th when Roma's Nainggolan had too much space for himself and drilled home into the top left corner from some 25 metres.
Belgium sat back and tried to use their speed on the counter, but by doing that they gave Wales possession, confidence and passion.
Thibaud Courtois saved well from Neil Taylor after Belgium had shut off believing Nainggolan had been fouled; but the keeper stood no chance when Williams headed Aaron Ramsey's corner into the right corner for 1-1 in the 31st.
Lukaku should have restored the lead shortly after the restart but headed wide off Meunier's cross from the right. Kevin de Bruyne, now on the right after Marouane Fellaini had come on for Carrasco, drilled high, and Hazard fired inches right as Belgium pressed on.
But it was Wales who got on the scoreboard again against the flow of play.
Ramsey took up a long pass from Bale, centred to Robson-Kanu who controlled the ball with his back towards goal, got past Meunier and Fallaini with a great turn and scored into the left corner.
Belgium tried to come back, however in vain, and Wales then had the last laugh as Vokes, who had come on in the 80th, headed Chris Gunter's cross into the far left corner for the improbable triumph.
"We are on cloud nine, we have been working for many years for this. It is nights like this where we get the reward," Robson-Kanu said.
Saturday, July 2, 2016 - 09:14
Saturday, June 18, 2016 - 18:02
Thursday, June 30, 2016 - 19:43