Teenage sensation Renato Sanches, who scored Portugal’s goal and smashed home one of the penalties, said it was a “wonderful moment for the team and for me for scoring”.
Portugal have reached the last four without winning a single game within 90 minutes.
“People criticise us but we don’t care, because we are in the semis,” Sanches said, after Portugal reached the semi-finals for the fourth time in the last five European Championships.
Poland had started strongly, with Robert Lewandowski scoring his first goal of Euro 2016 inside two minutes in the Marseille clash before 18-year-old Sanches, his new teammate at Bayern Munich, equalised with a powerfully driven shot. The game then went through extra-time deadlocked at 1-1.
Goalkeeper Rui Patricio and Ricardo Quaresma were Portugal’s heroes in the shootout.
Ronaldo was among the players fist-pumping when Patricio dived to his left to save Jakub Blaszczykowski’s tame fourth shot for the Poles, who had reached the quarter-finals for the first time.
Quaresma was next up for Portugal and made no mistake firing high into the net to beat Poland goalkeeper Lukasz Fabianski.
“It hurts and it will hurt for a long time,” Lewandowski said as Ronaldo celebrated taking the latest step toward winning a first major international trophy with Portugal.
Poland made a blistering start to the game. After barely 100 seconds, Kamil Grosicki hurried past Southampton right-back Cedric Soares to deliver a great cross that Lewandowski drove past a flailing Rui Patricio at his near post.
The Polish striker’s first goal of the competition, after hitting a record 13 in qualifying, stunned Portugal.
The early goal gave Poland momentum, and a defiant but borderline interception by Grzegorz Krychowiak on Sanches set Arkadiusz Milik up for a 25-yard drive that sailed wide on the quarter hour.
Ronaldo hit the defensive wall with one free kick and goalkeeper Lukasz Fabianski had no trouble with Ronaldo’s 18-yard drive from a Nani cross. German referee Felix Brych waved away Ronaldo’s claims for a penalty on 31 minutes despite replays suggesting the Real Madrid star was bundled over by centre-back Michal Pazdan as he went to meet a cross.
Sanches made amends for Portugal less than two minutes later with a stunning leveller on his first start at Euro 2016.
The midfielder collected Nani’s cutback from the right side of the area and hit a fierce shot that deflected off Grzegorz Krychowiak and beat Fabianski at his near post.
Poland’s slick passing game, however, was impressive throughout.
Kamil Glik’s long ball found Grosicki in space to fire in a great cross at the back post that forced Patricio into action as Lewandowski hovered.
And it took a timely intervention from Jose Fonte just after the restart to stop Lukasz Piszcek’s cutback reaching Lewandowski, who got his head to a cross moments later that Patricio gratfeully collected.
Portugal were not finished, but Ronaldo’s normally deadly finishing was amiss.
He skewed a great chance into the side-netting from Nani’s superb ball in behind the defence.
On the hour, Ronaldo completely miskicked a shot after an exchange between Joao Mario and Nani, the ball falling for Adrien Silva to drive the ball off Krychowiak.
Cedric’s 30-yard drive had Fabianski diving dramatically to his right as the ball sailed a foot past his far post.
Poland created two chances in two minutes, Patricio notably forced down low to thwart Milik’s mid-air effort after a cross from Artur Jedrzejczyk.
But they breathed a sigh of relied when Jedrzejczyk’s interception of Mario’s through ball for Ronaldo crept past the far post with Fabianski rooted to the spot.
Portugal should have hit the winner on 85 minutes, but after sneaking behind Pazan to meet a ball over the top from late substitute Joao Moutinho, Ronaldo’s left foot failed to connect with what looked like a simple chance.
Extra time was notable more for the pitch invader who tried to reach Ronaldo than for real scoring chances. Fourteen security personnel carried the Ronaldo fan off after he was caught.