ヨハネスブルクの歴史は富と紛争に彩られている。ヨハネスブルクがある土地には、数百万年前から人類が住み着いていた。比較的最近では、サン族やソト・ツワナ族など、アフリカの民族がこの地を支配していた。しかし、ヨーロッパ帝国による侵略の波は南アフリカを永久に変え、まずオランダが、次いでイギリスがこの地域で覇権を確立した。この結果、オランダの開拓民は南アフリカの内陸部へ向かって北上し、奥地に居住地を建設した。そして1880年代、ある開拓民が後にヨハネスブルクとなる場所でウィットウォーターズランド金鉱床を発見したのである。
以降、この都市は急速な発展を遂げた。黄金目当ての山師たちが殺到し、大地主たちはこの一帯を我がものにしようとし、鉱山の仕事を求めてアフリカ南部全域から労働者が押し寄せてきた。当時のヨハネスブルクは、鉱山労働者や組織犯罪者、その他雑多な人々が集まった荒っぽい土地だった。ちなみに、意外かもしれないが、洗濯業界を独占していたのはズールー人だった。また、住民の大半はアフリカ人だったが、この伸び盛りの都市に名前を与えたのは、オランダ系アフリカーナやイギリスの開拓者だった (「ヨハネス」は当時のオランダで最も人気のある名前だった)。
当時この地域を支配していたのはトランスヴァール共和国、すなわちボーア (オランダ) 南アフリカ共和国であった。この国は第一次ボーア戦争でイギリスの領土拡大に抵抗し、短期間だが共和国として独立した。しかし、第二次ボーア戦争ではイギリスに抗しきれず、ヨハネスブルクは人口を大きく減らした (中国人コミュニティが形成されたのもこの頃である)。
採鉱はヨハネスブルクの重要産業だった。黒人鉱山労働者の居住区だったソウェトは、都市中心部に劣らない規模へ成長した。だが、1948年に施行された人種隔離政策、アパルトヘイトによってこうした労働者は移動を制限され、権利を取り上げられる。これによって生じた緊張は、1976年のソウェト蜂起を契機に爆発し、黒人学生がアパルトヘイトに抗議するデモ行進をおこなった。警察は武力によってこれを鎮圧したが、こうした抗議の結果、ソウェトとアフリカ民族会議はアパルトヘイト反対の主導的役割を担うこととなる。やがてアフリカ民族会議が政権の座につき、1994年にアパルトヘイト政策は撤廃された。
今日のヨハネスブルクは、南アフリカ最大の都市である。鉱山の重要性は薄れ、鉱山労働者と警察の間には現在も確執が存在するが、産業都市であることは変わっていない。