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_96N15FGwThe US House Ethics Committee has voted to release its report on former Republican Representative…
ABC News has agreed to pay $15 million to President-elect Donald Trump to settle a…
South Korea’s parliament has voted to impeach President Yoon Suk Yeol over his failed attempt…
Israeli war planes have carried out more than 100 air strikes in Syria on December…
President-elect Donald Trump has threatened to impose 100% tariffs on the BRICS countries if they…
Syrian troops have withdrawn from the city of Aleppo following an offensive by rebels opposed…