The epicentre of the quake, measuring 5.4 on the Richter scale, was 10 kilometres north of Kraljevo, the Serbian Seismological Institute said.
Some old buildings and the hospital in the town of Kraljevo were damaged in the quake.
The tremor was felt in Belgrade and other cities.