Six men, six women and a two-year-old boy died before the gunman tried to kill himself and his wife. They are now said to be in a serious condition.
Police identified the gunman as Ljubisa Bogdanovic, a 60-year-old war veteran.
The victims were reported to be relatives and neighbors of Ljubisa Bogdanovic, and included his mother and son.
The shootings took place in several houses in Velika Ivanca, about 50 km (30 miles) south-east of capital Belgrade at about 5 a.m. local time.
Local residents said the gunman, armed with a 9 mm handgun, killed his son before leaving the house and shooting dead neighbors, some of whom were still asleep.
“He knocked on the doors, and as they were opened he just fired a shot,” villager Radovan Radosavljevic was quoted by the Associated Press as saying.
“He was a good neighbor and anyone would open their doors to him. I don’t know what happened.”
All but one of the victims died instantly, police said.
Serbian police chief Milorad Veljovic, who is at the scene, told RTS that the gunman was “from a peaceful family and had no criminal record”.
“We’re all just stunned,” Milorad Veljovic said.
Ljubisa Bogdanovic is reported to have been made redundant last year. He fought as a Serb soldier in the war in Croatia in 1991.
The motive for the attack was not immediately clear.
In a similar attack in Serbia in 2007, a 39-year-old man shot dead nine people and injured two others in a village in the east of the country.
gS_96N15FGwMisleading allegations, rumours and outright lies about voting and fraud are flooding online spaces in…
At least 158 people have died in Spain's worst flooding disaster in generations. On October…
Google has been fined two undecillion (a two followed by 36 zeroes) roubles by a…
Embarking on a home remodel is an exciting journey, promising enhanced comfort, increased property value,…
The US presidential candidates continued to campaign across key swing states on October 20. Footage…
Elon Musk has said he will give away $1 million a day to a registered…