South African Roland Mark Schoeman qualified fastest for the 50m freestyle final as the only man under 22 seconds.
Schoeman, silver medallist in the 100m, clocked 21.99 as he won the first semi-final ahead of Australian Brett Hawke.
Algerian Salim Iles also went through from the first race, while American Jason Lezak won the second in 22.12.
Joint defending champion Gary Hall, Ukrainian Oleksandr Volynets, Sweden's Stefan Nystrand - who all clocked 22.18 - and Duje Draganja also qualified.
Earlier, Dutch 100m champion Pieter Van den Hoogenband and Russian veteran Alexander Popov both missed out on the semi-finals after some fiercely competitive heats.
Van den Hoogenband could only finish 17th in 22.56, with Russian Popov, who won over 50m in 1992 and 1996, one place behind.
"I'm not disappointed. I knew it could happen," said Van den Hoogenband, who won the 100m on Thursday night.
"Yesterday I was so, so happy. It was such a big night for me to win the gold again."
Van den Hoogenband seemed more disappointed for his rival Popov.
"He's a great, great swimmer, and he deserves a spot in the final," he added.