Robson-Kanu left three Belgium players for dead with a ‘Cruyff’ turn and calmly stroked the ball home to put Wales ahead in the second half, while substitute Vokes’s header ensured they reached their first major tournament semi-final.
It was a crushing blow for heavy favourites Belgium, who had taken the lead in the 13th minute when Radja Nainggolan rifled a shot into the top corner from distance only for Wales captain Ashley Williams to level with a header from a corner.
“I said before we kicked the ball today, we’re not here to enjoy it, we are here to compete,” Wales manager Chris Coleman said. “Don’t be afraid to have dreams. Four years ago I was as far away from this as you could imagine. I’ve had more failures than successes but I’m not afraid to fail. We deserve this.”
Wales, playing in their first quarter-final, and major tournament, since losing to Brazil at the 1958 World Cup, next have a match that pits the world’s two most expensive players – Portugal’s Cristiano Ronaldo and his Real Madrid team mate Gareth Bale – against each other in a mouth-watering clash.
Coleman’s side, however, will have to cope without their inspirational midfielder Aaron Ramsey and defender Ben Davies who both picked up bookings that ruled them out of the semi-final in Lyon on Wednesday.
Belgium coach Marc Wilmots was left to rue an injury and suspension in defence that robbed him of the experienced Jan Vertonghen and Thomas Vermaelen as their younger replacements, Jordan Lukaku and Jason Denayer, were frequently exposed.
The manner of the defeat, however, is likely to increase the scrutiny on Wilmots, who has faced criticism for failing to make the most of what many believe to be a golden generation of Belgium players.
“This Belgian team is a team that demands respect, but we let things go a bit today and we paid for that in cash,” he said, before adding he would take time to consider his future.
There was a frenetic opening to Friday’s match, which many had predicted would be a cagey encounter, as Belgium took the early initiative and would have grabbed the lead after seven minutes but for some superb last-ditch Wales defending.
Wayne Hennessey saved superbly from Yannick Carrasco before efforts from Thomas Meunier and Eden Hazard were blocked by lunging defenders as Wales, looking to talisman Bale for an outlet, sought to stem the early Belgian tide.
The Welsh were undone, however, when Nainggolan’s powerful shot from 25 metres thundered past Hennessey’s outstretched fingers into the top corner to give Belgium the lead.
Strangely, the goal swung the momentum back in Wales’s favour, with Coleman’s side fluffing a chance to level when Neil Taylor sidefooted at keeper Thibaut Courtois from six metres.
The equaliser arrived five minutes later in the 31st, though, and was clearly crafted on the training ground. Having won a corner, Wales’s players lined up behind each other, before breaking from the pack as Aaron Ramsey whipped the ball in.
Wales captain Williams, who had recovered from a shoulder injury to make the starting lineup, found himself unmarked to head down and past Courtois for the first goal the Belgium keeper had conceded since their opening defeat by Italy.
While Belgium began the second half stronger, with Romelu Lukaku glancing a header wide and Hazard flashing a shot just past the post, it was not long before Wales struck again with Robson-Kanu producing a sublime piece of individual skill.
Ramsey’s cross found the striker in the area with his back to goal but he sold three Belgium players a dummy with a trademark ‘Cruyff’ turn and then sidefooted the ball powerfully past the helpless Courtois in the 55th minute.
Belgium pushed hard for an equaliser but Wales were resilient and then broke with four minutes remaining as Chris Gunter crossed for Vokes to leap and angle his header across goal into the net, sparking wild Welsh celebrations.