Janet McNichols, a reporter covering the meeting for the St Louis Post-Dispatch, told the newspaper that the meeting had just started when the attacker rushed in and opened fire.
Kenneth Yost, director of public works for St Louis, was shot in the head, and council members Michael Lynch and Connie Karr also were hit, McNichols said.
He shot Tom Ballman, a police officer, in the head, and opened fire on Mike Swoboda, the mayor, wounding him.
The gunman also fired at John Hessel, who tried to fight off the attacker by throwing chairs, McNichols said.
McNichols identified the gunman as Charles Lee Thornton, a man who had previously disrupted council meetings.