Police said gunmen entered the Orlando East tavern in the early hours of Sunday morning and started firing randomly at a group of young people.
They then fled the scene in a white minibus. No motive for the attack has been established, police said.
Several more people are in a critical condition in hospital, the BBC's Nomsa Maseko reports.
The victims are believed to be between 19 and 35 years old.