The Czechs - with captain Tomas Rosicky, the Arsenal midfielder, only on the bench because of an Achilles injury - had started brightly, but lacked a decisive move in the final third.
It had been a decent opening from Michal Bilek's side as Petr Jiracek drilled the ball in from 20 yards, but his effort was blocked by Real Madrid defender Pepe.
Portugal coach Paulo Bento named an unchanged side having beaten Netherlands to qualify behind Germany out of the 'Group of Death' for the last eight.
Manchester United winger Nani and Madrid star Ronaldo, who would miss the semi-final if he picked up another caution, were the most lively for the Portuguese.
On 17 minutes, the Czech Republic, who overcame a 4-1 defeat in their opening game against Russia to win Group A, broke quickly down the right and Vladimir Darida whipped over a low cross through the six-yard box, which Galatasaray striker Milan Baros just failed to connect with.
Ronaldo was played into the Czech box, holding off Michal Kadlec, and drilled the ball goalwards with Chelsea keeper Petr Cech making a smart save. However, English referee Howard Webb had blown for a foul by the Portugal forward, who could not believe the decision against him.
On 26 minutes, Nani went into the Yorkshireman's notebook after tripping David Limbersky. The game was starting to open up as Czech full-back Theodor Gebre Selassie cut in from the right and crossed, with Pepe again alert to clear the danger.
At the other end, Ronaldo - who netted a brace against the Dutch - went close with an overhead kick at the far post. The former Manchester United forward was then just off target again with an ambitious long-range free-kick.
Portugal were forced into a change six minutes before half-time when striker Helder Postiga pulled up with what appeared to be a hamstring problem, and was replaced by 6ft 3in Besiktas frontman Hugo Almeida.
Nani claimed for a penalty after going down in the box under close attention from Limbersky, but the referee was unconvinced, with TV replays showing the United forward slipped rather than was pushed.
Portugal continued to press and Ronaldo was within inches of a spectacular opening goal when he collected a high ball into the box on his chest, swivelled around marker Kadlec and crashed the ball past Cech - only for it to strike the base of the near post.
There was another great chance for Portugal at the start of the second half, when Almeida headed over from 12 yards after being picked out by Raul Meireles' cross.
On 50 minutes, Ronaldo was denied by the woodwork again as this time his 30-yard free-kick clipped the outside of the far post with Cech beaten.
The Chelsea keeper then had to parry away a 25-yard strike from Nani, and only an offside flag prevented Portugal taking a deserved lead on 57 minutes when Almeida glanced in the United winger's cross.
The Czechs produced a counter-attack when Vaclav Pilar charged down the left and into the penalty area, only to produce a poor final pass, which was hacked clear.
Portugal were soon back on the offensive as Moutinho's dipping 25-yard effort was tipped over.
Kadlec was then left in a heap after being clattered by goalkeeper Cech, who punched clear at the edge of the penalty area. The Chelsea man's goal was leading a charmed life, as Nani's floated ball was deflected behind.
Ronaldo finally broke the deadlock on 79 minutes, when he sent a diving header past Cech from Moutinho's right-wing cross. Portugal continued to pour forwards, with Cech beating away an angled 25-yard effort from full-back Joao Pereira.
Ronaldo went down under a challenge from Gebre Selassie and, although he appeared to be caught by the Czech defender, referee Webb again waved play on.
Portugal saw out four minutes of stoppage time to secure their place in the semi-finals, where they will face either Spain or France.
Man of the Match: Cristiano Ronaldo. A tremendous display, once more. The powerhouse was in the mood, yet the curse of the woodwork threatened to haunt him. A glorious piece of individual skill was not rewarded with a goal in the first half, while a typically long-range free-kick clipped the post too. Yet he got his goal the performance deserved; a marvellous diving header that won the game.
Czech Republic verdict: Out with a whimper, sadly. In the first half they battled for possession in the centre of the park and did their utmost to double, or even treble, up on Ronaldo. But their legs went in the second, with their better players - Pilar and Jiracek - barely getting a kick.
Portugal verdict: A deserved triumph. They took the game to the Czechs and were unfortunate to win it by only a goal. Their goalkeeper, Rui Patricio, barely had a thing to do. Sans Ronaldo, they would unlikely be in the final four, but that is something of a moot point. That said, they will need their star man to shine brightly against France or Spain if they are to reach the final like in 2004.
Could do better: Theodor Gebre Selassie. It was always going to be a stringent test for the 25-year-old, faced with the task of marking the aforementioned Ronaldo. So impressive up until this match, the right-back struggled, perhaps in light of the occasion. His brain froze twice in the first half, and in the second period he went to sleep on the goal, allowing Ronaldo to soar onto the cross unchallenged.
Stat attack: Cristiano Ronaldo has netted Euro 2012's 18th headed goal, more than any previous tournament.