Police in New South Wales said one suspected gunman was dead and the other was in critical condition.
Eleven injured people, including two police officers, were taken to the hospital.
Witnesses described panic on the crowded beachfront as people ran for safety.
Bondi Beach, one of Australia’s best-known tourist spots, is typically busy with locals and visitors.
Prime Minister Anthony Albanese called the incident “shocking and distressing”, saying emergency responders were at the scene working to save lives.
Israeli President Isaac Herzog said Jews who had gone to light the first candle of Hanukkah had been attacked by “vile terrorists”.
Israeli Foreign Minister Gideon Saar urged Australia’s government to act, linking the violence to rising antisemitism.
Leaders from Muslim organisations in Australia condemned the attack and called for those responsible to be held fully accountable under the law.
Mass shootings are rare in Australia.
The death toll made it the country’s worst such incident since 1996, when 35 people were killed in an attack at a tourist site in Tasmania, officials noted.
Videos circulating online appeared to show people fleeing and police detaining two men, though the footage could not immediately be verified.
Reuters