One of the buses was a university vehicle ferrying students between campuses at the University of Johannesburg, while the other was a city bus.
In the aftermath, one of the buses lay on its side after crashing through a fence at an entrance to the university.
The other bus appeared to have smashed head-on into a concrete bus stop after the collision.
The accident happened around 7 a.m., authorities said.
Johannesburg Metropolitan Police Department spokesperson Xolani Fihla said a case of negligent driving would be opened by police.
The cause of the crash was not yet known, Fihla said.
The University of Johannesburg said three of its students were among those taken to the hospital, while other students with minor injuries were treated at the university’s medical center.
The university was also offering counseling to those involved in the crash, it said.