Four hospital managers were shot by a dismissed driver who had attacked a security guard and grabbed his gun.
The man arrived at the Seshego hospital in the northern Limpopo province early Friday to collect his letter of dismissal issued after a disciplinary inquiry found him guilty of a hit-and-run in a hospital car during a public service strike in June.
After grabbing the gun, he shot the chief executive officer dead "behind her desk," and killed the human resources manager, the administration officer and an administration worker, SAPA said.
He fled, but was caught by police at the gate with the gun in his hand, the press association reported.
The hospital transferred all patients and refused further admissions.
The Democratic Nursing Organisation of South Africa said "this terrible incident has affected the whole nursing profession across the country."