Defending champion France beat Japan 3-2 on Thursday and host Brazil routed Canada 12-1 to reach the semi-finals of FIFA's Beach World Cup.
Portugal moved through by beating Bahrain 6-2, while Uruguay advanced after edging Argentina 2-1 in a match that ended in a brawl.
Players from both teams scuffled after the match as Uruguay scored the winning goal in the final seconds on Copacabana beach. The Argentines were upset, saying the Uruguayans should have given the ball back as fair play following a player injury.
Chairs were tossed and police officers had to intervene to end the melee. Even some Brazilian fans, cheering against the Argentine rivals from the start, got involved.
Uruguay will face France, which got past Japan with goals by Didier Samoun, Jeremy Basquaise and Jean-Marc Edouard. The French team dominated the match, with Japan scoring its two goals in the last minute.
Brazil, a nine-time beach soccer champion, trounced Canada behind two goals each by Bueno, Bruno and veteran Junior Negao. Brazil will now face Portugal, which upset the hosts in FIFA's inaugural tournament last year.
Portugal, which lost to France in last year's final, reached the semi-finals by beating Bahrain with a hat trick by Madjer, the tournament's leading scorer with 15 goals.
The semifinals will be played today.
Beach soccer is played on a sand field about 40m long and 30m wide. Each match is divided into three periods of 12 minutes, and substitutions are unlimited.