A 33-year-old man died when his shack caught alight on Saturday at Zola, Soweto, Johannesburg emergency services said.

Spokesman Percy Morokane said the cause of the fire was not yet known, but there was speculation that the man was drunk.

"It is believed that he lit a cigarette. The single-room shack caught fire before he could finish smoking because he was fast asleep."

In a separate incident, more than 80 people were left homeless when 50 shacks were destroyed by fire at about 1am at George Gogh Informal settlement, south of Johannesburg.

Morokane said it was not known what started the fire.

No injuries were reported.

Sapa