Republic and condemn the Dutch to a first group-stage European Championship exit since 1980.
Needing to win by two clear goals to stand any hope of progressing, Holland took an early lead through Rafael van der Vaart but were undone by goals in each half from man of the match Cristiano Ronaldo.
“We have succeeded in our great aim, which was to qualify for the quarterfinals,” said Ronaldo.
“Now we have to play against the Czech Republic, which is going to be hard, but we’ll do our best.”
From a Dutch perspective, the final score was rendered immaterial as Denmark’s 2-1 loss to Germany in the other Group B match meant they would not have qualified for the last eight even in case of victory.
Portugal, for whom Ronaldo belatedly reproduced his Real Madrid form at this tournament, will compete for a semi-final place against the Czechs in Warsaw on Thursday.
“It was the best game we have played so far, except for the first 12 minutes,” said Portugal coach Paulo Bento.
“But we’ve been loyal to our spirit and we’ve now shown that we’re capable of reacting againt Denmark and Holland. We won’t let up.”
Runners-up at the World Cup two years ago and top scorers in qualifying, the Netherlands leave Ukraine with their tails between their legs after three consecutive defeats.
“I think we started quite well today and we scored after about 10 minutes,” said Holland coach Bert van Marwijk.
“But you saw that when we concede a goal, the uncertainty remains. If we’d scored a second, we might have been more sure of ourselves, but we didn’t take our chances.”
Van der Vaart needed less than 11 minutes to vindicate his manager’s decision, collecting a pass from Arjen Robben and shaping a delightful 25-yard shot inside the left-hand post to put Holland ahead.
However, if the Dutch thought they were in for a comfortable evening, Portugal quickly had them on their toes with a flurry of chances sparked by Ronaldo drifting inside and brushing the post with a low strike.
Dutch goalkeeper Maarten Stekelenburg was allowed to shine on his 50th appearance, thwarting Helder Postiga following an errant back-pass by Gregory van der Wiel and then showing sharp reflexes to box away a Ronaldo header.
Holland failed to heed the warnings though, and in the 28th minute Ronaldo levelled, powering onto Joao Pereira’s incisive, stabbed pass and clipping the ball past Stekelenburg from close range.
Strangely, scoring the opening goal seemed to have inhibited the Dutch, and they were cowed even further by Ronaldo’s equaliser.
So often scorned for his international displays, Ronaldo was a man transformed, and after working Stekelenburg with an audacious dipping shot from 35 yards, he crashed a header narrowly wide from a corner.
Van Marwijk gambled in the second half, throwing on winger Ibrahim Afellay for left-back Jetro Willems, but still Portugal came, Nani spurning a good chance by firing at Stekelenburg after Ronaldo had rolled the ball across goal.
The Madrid man was not so forgiving when Nani returned the favour in the 74th minute, checking inside sharply to send van der Wiel sprawling and then calmly beating Stekelenburg at his near post.
Van der Vaart hit the post with a right-foot curler, but it was the only bright moment in what was a desperate second period for the Dutch, who saw Ronaldo wobble an upright in the final minute.