Jacob Shaffelburg fired Canada into the lead in the 13th minute but Salomon Rondon equalised in the 64th, before Canada triumphed in the shoot-out to set up a last-four meeting with world champions Argentina.
The Canadians, under American coach Jesse Marsch, who only took over the team in mid-May, are playing in the Copa America for the first time and produced a relentless display of pressing in what was a frantic game.
Both teams failed to score from the spot twice in the shoot-out, leaving it at 3-3 after five penalties each and sending the contest into sudden death.
Canada keeper Max Crepeau, who had made a major error for Venezuela’s equaliser, made amends as he saved Wilker Angel’s kick.
That left Ismael Kone with the chance to win the game. He converted with an ice-cool penalty to set off the celebrations in front of a crowd of 51,080 mostly Venezuela supporting fans.
Canada played Argentina in the opening game of the group stage, losing 2-0 to the defending champions and will start as huge underdogs again in the semi-final.
But after a performance of remarkable energy and determination against a Venezuela team that won all three of their group stage games, Marsch will believe his team could pull off another upset and reach the final in Miami on July 14.
Canada roared out of the blocks, giving Venezuela no time on the ball and getting forward in numbers in the early stages.
“Vinotinto” keeper Rafael Romo had to race out of his area to stop Cyle Larin as he raced on to a ball over the top, but there was nothing he could do minutes later when the Canadians took the lead.
Jonathan David bustled in from the right and winger Shaffelburg arrived right on time to slot the ball into the bottom corner.
Shaffelburg, a speedy left-winger who plays in Major League Soccer for Nashville, then forced Romo into a diving save and then delivered a low cross which David was unable to finish.
Canada were going for the jugular and Richie Laryea zipped a ball across the face of the box but the stretching David was unable to reach it.
Larin wasted a big chance just after the interval when he found the ball in space in the box but leaned back and fired his shot well over the bar.
Marsch’s high-energy tactics were starting to take a toll on his players and as they tired Venezuela grew into the game.
Jose Martinez should have done better when a poor clearance landed at his feet in the box but he stabbed his shot wide.
But then a long ball forward was won by Rondon, who spotted Crepeau far off his line and from 35-yards out the veteran striker produced a perfect lob to beat the stranded keeper and make it 1-1.
There were late chances for Canada to win the game in regulation time, but neither Liam Millar nor Tani Oluwaseyi, both on as substitutes could provide a composed finish.
With no extra-time in Copa America, it was straight to penalties and after Rondon and David both converted, Yangel Herrera hit the post for Venezuela.
Millar then put his effort over the bar and after Tomas Rincon scored for Venezuela, Moise Bombito levelled for Canada.
But Jefferson Savarino hit the post and Canada’s Stephen Eustaquio saw his soft effort saved by Romo before both teams scored to make it 3-3.
Then in sudden death, Crepeau dived to deny Angel leaving Kone with the pressure shot to win which he handled with aplomb.
“Everybody needs to realize the respect this country deserves and these footballers deserve,” Crepeau told Fox Sports.
“Everybody says ‘these Canadians’, well these Canadians are in the semi-finals of Copa America”.
AFP