Brazil and Russia, the top two teams in men's volleyball, will play for the gold medal after both earned semifinal wins Friday.
Top-ranked Brazil raced past Italy in 85 minutes, winning in straight sets 25-21, 25-12, 25-21 to reach the gold medal match for the third straight Olympics.
Russia, ranked No. 2 in the world, beat Bulgaria in four sets 25-21, 25-15, 23-25, 25-23 to guarantee a medal for the fourth straight Summer Games.
The gold medal match is Sunday afternoon. Italy and Bulgaria will play for the bronze medal in the morning.
Brazil won gold in 1992 and 2004, but lost the 2008 final in Beijing to the United States. It was led in Friday's match by Murilo Endres with 15 points, including 12 on spikes.
Russia's Maxim Mikhaylov, who entered play as the Olympic tournament's top scorer, had 25 points to lead all players Friday, getting 21 on spikes.
Russia has won a medal in each of the last three Olympics, including bronze in the last two. It won silver at the 2000 Sydney Games. The Soviet Union won a gold at the boycotted 1980 Moscow Olympics.
Italy has won four Olympic men's volleyball medals but never gold, while Bulgaria's only medal in the sport was a silver in 1980.
The U.S. men's team was knocked out here by Italy in the quarterfinals but the women's team will play for gold against Brazil on Saturday. Japan and South Korea will meet for the bronze.