A man opened fire with an assault rifle in Zitiste, a town 80 kilometres north of Belgrade, killing five people and wounding around 20, state TV RTS reported.
The 38-year-old shooter barged into a cafe shortly after midnight, killed his wife and continued shooting patrons, RTS said quoting a police statement.
Police were still investigating, but it appears that marital problems were the trigger. The attacker had an automatic rifle in illegal possession, police said.
Seven of the wounded - at least three of which were minors - were in "very serious condition."
It was not immediately clear where the attacker obtained the weapon, reportedly a Kalashnikov rifle. He had no previous criminal record.
His family fled Croatia at the end of the war in the country 21 years ago and may have brought the rifle then, a local resident told dpa over the phone.
The crime occurred during the "Chicken Festival," which draws regional attention to the usually sleepy town of Zitiste, which gained international fame a decade ago for a statue of the iconic movie character, boxer Rocky Balboa.
Automatic weapons cannot be registered in private property under Serbian law, but thousands of them are believed to be held illegally since the Yugoslav wars of the 1990s, in which the locally manufactured Kalashnikov was the staple weapon.
In Serbia recently, there were several mass killings, all committed by males.
A year ago in the northern town of Kanjiza, a father angry over his son’s decision to marry killed six. In 2013 an unprovoked war veteran killed 13 in a pre-dawn shooting spree near Belgrade. In 2008 a man fatally shot six family members in southern Serbia.