The tremor struck at 2:38 am (0038 GMT) around 10 kilometers (six miles) below the surface, the USGS said.
Residents across the province felt the tremor and some posted pictures on social media showing minor structural damages of walls.
In August 2014, a 5.3 magnitude earthquake hit a gold mining town near Johannesburg.
The last major quake to hit South Africa was a 6.3-magnitude tremor that struck the Western Cape Province in 1969.