(photo credit: AP)
The semifinal match is still scheduled for Wednesday night Munich, even if the two teams playing are not the ones that most people expected to be there.
Brazil and England both lost Saturday, leaving France and Portugal to contest a match that will send one of them to the final on July 9 in Berlin.
France, the 1998 champions, won its third straight World Cup match against the five-time champion Brazilians. Thierry Henry scored the only goal in the 57th minute to give France a 1-0 win over the defending champions.
England again lost to Portugal on penalties, this time 3-1 after a 0-0 draw over 120 minutes. The Portuguese beat England at the same stage in the 2004 European Championship.
Henry scored the lone goal in Frankfurt after Zinedine Zidane sent a curling free kick to the unmarked striker, who had the whole right side of the net for his right-footed volley.
"We played well and this was not a lucky victory," Henry said. "We had the tactics in place for the match and we stuck to them and never gave up."
Brazil and France have played three times since the 1998 final, with France winning 2-1 in the 2001 Confederations Cup in South Korea and then playing to a 0-0 draw in a 2004 friendly in Paris.
Moments after Henry's goal, with the Brazilians totally flustered, France nearly got a gift own-goal. But the French were so dominant, it might have been unnecessary.
France began the tournament so poorly it appeared another first-round exit, on top of the flop four years ago, was likely. Instead, it has a four-game unbeaten streak against Brazil.
France's win ensured the first all-European final four since 1982, when Italy, West Germany, Poland and France took part in the semifinals. This time, France and Italy will be joined by Portugal and a united German team.
England, playing much of the match in Gelsenkirchen without David Beckham and Wayne Rooney, got only one goal from Owen Hargreaves in the shootout.
England has now lost five of its last six shootouts in major tournaments.
Beckham went off seven minutes into the second half, five minutes after Nuno Valente stepped on his right ankle. Rooney was red-carded 10 minutes later after getting tangled up with a Portuguese player and then pushing Cristiano Ronaldo just a few steps in front of the referee.
Portugal goalkeeper Ricardo Pereira was the key player in the shootout, making three saves.
"It was great," Ricardo said. "I managed to stop three of them. I'm really happy."
Ronaldo, who plays in England for Manchester United, converted the final penalty, sending the ball to his right as goalkeeper Paul Robinson went the other way.
Simao Sabrosa and Helder Postiga also converted penalties for Portugal, while Higo Viana hit a post and Armando Petit sent the ball wide.
Ricardo stopped kicks by Frank Lampard, Steven Gerrard and Jamie Carragher, whose shot rebounded off Ricardo, then hit the crossbar before bouncing out.
"It was an electrifying marvelous game with two great teams," Portugal coach Luiz Felipe Scolari said. "The game had everything in the good sense.
Only penalties decide who would go on. I have great respect for England, who even with 10 men made us sweat and run even more."