De vlag van Johannesburg is op 16 mei 1997 vastgesteld als de gemeentelijke vlag van Johannesburg, ter vervanging van een eerdere versie van de vlag die op 20 oktober 1970 in gebruik was.
Het ontwerp is een wit gefacetteerde verticale driekleur van blauw, groen en rood. Het wapen van de stad Johannesburg staat in het midden van de vlag op een groen paneel in het midden van een herautstuk op een witte schijf op een zwarte achtergrond. De vlag verwijst duidelijk naar de kleuren van de nationale vlag van Zuid-Afrika en het centrale paneel verwijst naar het wapen van de stad.