Portugal 0-1 France
France booked a World Cup final spot against Italy after Zinedine Zidane's first-half penalty earned victory over a disappointing Portugal in Munich.
Zidane struck coolly past Ricardo on 33 minutes after Thierry Henry was tripped inside the box by Ricardo Carvalho.
Henry saw another shot trickle wide and Franck Ribery forced Ricardo to save.
Luis Figo and Deco saw shots saved by Fabien Barthez and Figo nodded over late on, but France stayed in control and thoroughly deserved their win.
Raymond Domenech's side will now play Italy in the final in Berlin on Sunday at 1900 BST.
The final will be Zidane's last game before he retires from professional football and is a chance to win his second World Cup after the 1998 triumph on home soil.
Zidane's influence on proceedings was not quite as substantial as in the previous rounds against Spain or Brazil, but apart from a lively start Portugal rarely looked like ending their French curse.
They have not beaten France since 1975 and have still never beaten them in a major competition.
But Luiz Felipe Scolari - who lost his 100% record as a coach at World Cup finals - saw his side begin well, with Deco and Figo both forcing saves from Fabien Barthez with low 20-yard drives.
Cristiano Ronaldo was being roundly booed every time he touched the ball after his histrionics against England, but he was in fine form and twice had shots blocked as he surged at the French defence.
Having made a slow start, Domenech's side clinically took the lead just after the half hour mark.
Henry turned exquisitely just inside the area and was brought down by Carvalho, Zidane stepping up to decisively strike the penalty past Ricardo, who managed to get a hand on it.
Ronaldo tried to win a spot-kick of his own moments later, but his theatrical dive under the slightest challenge from Willy Sagnol was ignored by referee Jorge Larrionda.
Henry had a chance straight after the restart to double the lead, but after twisting and turning in the box his shot squirmed under Ricardo and out for a corner.
Portugal looked far from threatening with the out-of-sorts Pauleta on his own up front and Ricardo had to save Ribery's drive as France stayed in control.
The second half was a dire affair, scrappy and lacking any real creativity - it suited the French down to a tee because they never let Portugal back into the game.
Their best chance was down to Barthez. He bizarrely parried a Ronaldo free-kick into the air but from six yards Figo could only head the rebound over.
Figo and his team-mates tired badly and they simply could not muster a late rally to provide the French with any sort of threat.
Scolari furiously marched onto the pitch at the final whistle to remonstrate with referee Larrionda, but had little reason to complain.
The 57-year-old, who had won 12 World Cup games in a row as coach of Brazil and Portugal, was finally left to suffer the bitter taste of defeat.