The boy was one of six victims, with a further five people injured.
The fire broke out at 1.30am as a winter storm hit the Western Cape.
“The city’s fire & rescue service received an emergency call just after 1.30am, with fire crews from Belhar and Lansdowne Road responding,” said spokesperson Jermaine Carelse.
“They found an informal structure on fire in Ebbehout Street, and the body of a boy in one of the bedrooms. Five others were taken to hospital,” he said.
“The fire was extinguished at 2.30am before the scene was handed over to the police forensics unit,” said Carelse.