Health department spokesman Sizwe Kupelo said the man awoke on Sunday afternoon, 21 hours after his family called in an undertaker who sent him to the morgue after an asthma attack.
Morgue owner Ayanda Maqolo said he sent his driver to collect the body shortly after the family reported the death. Maqolo said he thought the man was around 80 years old.
"When he got there, the driver examined the body, checked his pulse, looked for a heartbeat, but there was nothing," Maqolo told the Associated Press.
But a day after staff put the body into a locked refrigerated compartment, morgue workers heard someone shouting for help. They thought it was a ghost, the morgue owner said.
"I couldn't believe it!" Maqolo said. "I was also scared. But they are my employees and I had to show them I wasn't scared, so I called the police."
After police arrived, the group entered the morgue together.
"I was glad they had their firearms, in case something wanted to fight with us," Maqolo said.
He said the man was pale when they pulled him out.
"He asked, 'How did I get here?'" Maqolo said.
The health department said the man was then taken to a nearby hospital for observation and later discharged by doctors who deemed him stable.
Kupelo, the health department spokesman, urged South Africans to call on health officials to confirm that their relatives are really dead.
The man's family was informed that he was alive during a family meeting convened to make funeral arrangements. They're very happy to have him home, Maqolo said.
But Maqolo said he is still trying to recover from the traumatic experience.
"I couldn't sleep last night, I had nightmares," he said. "But today I'm much better."