The gunman, an employee at the factory, was shot dead, and terrorism is not suspected, police say.
Ten of the wounded were critically injured in the shootings.
The attack comes less than a week after a man was charged with killing six people and wounding two others during a shooting rampage in Michigan.
A number of mass shootings in the US have elevated gun control as a campaign issue in this year’s presidential election.
Local police say the gunman, named as 38-year-old Cedric Ford, began shooting at around 5pm local time in the town of Newton.
Cedric Ford shot a truck driver in the shoulder, and another man in the leg as he drove towards the Excel Industries site where he worked.
The gunman then opened fire in the car park, killing one person, before killing two more people inside the factory site.
Factory employee Martin Espinoza described how the gunman, a colleague who he said usually had a calm demeanor, attempted to shoot him.
The gunman pointed his weapon at Martin Espinoza and pulled the trigger, but the weapon was empty. Martin Espinoza then ran away as the gunman took out a second gun.
The 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…