A superb shootout save by Portugal's Rui Patricio allowed Ricardo Quaresma to again be the hero as he sent Poland out of Euro 2016 with a 5-3 penalty shoot-out win.
With the two sides finishing at 1-1 following extra time Marseille, Patricio dived full length to block Jakub Blaszczykowski's penalty, Poland's fourth.
Substitute Quaresma, whose goal late in extra-time beat Croatia in the round of 16, hammered home Portugal's fifth from the spot.
Portugal, beaten on penalties by Spain in the semi-finals four years ago, advanced to the last four at the Euros for the fourth time in five tournaments, and will face either Belgium or Wales for a spot in the final.
Striker Robert Lewandowski had put Poland ahead in the second minute only for 18-year-old Renato Sanches to equalise with a superb shot 33 minutes into his first international start for Portugal.
Precious little happened from then on, with Poland - who had never won a European Championship match before this tournament and finished bottom of their group on home soil four years ago - no doubt bemoaning some early missed opportunities.
They went ahead almost from kickoff when Portugal defender Cedric's misjudgment allowed a long ball to bounce over his head to Kamil Grosicki. He drove on down the left and squared for Lewandowski to guide the ball in.
It was the striker's first goal of the tournament and, at one minute, 40 seconds, the second-fastest in European Championship history after Dmitri Kirichenko's for Russia against Greece after 65 seconds in 2004.
Portugal settled and began to make inroads, with Sanches playing a neat 1-2 with Nani smashing it past Lukasz Fabianski with the aid of a deflection.
Both sides came out for the second half seemingly under instruction to slow things down and the life bled from the game.