Three people died and 15 others were injured after a man went on a stabbing rampage inside a Walmart supermarket in Shanghai on Monday night.
Chinese police said they arrested a 37-year-old man surnamed Lin at the scene, adding that he had come to Shanghai to "vent his anger due to a personal economic dispute". Further investigations are continuing.
The incident took place at a shopping mall in Songjiang, a densely populated district in the city's south-west, which is also home to several universities.
Police said the three people who died succumbed to their injuries at hospital. The others "did not sustain life-threatening wounds" and are not believed to be in danger.
"There was blood everywhere," an eyewitnes surnamed Shi told BBC News.
Mr Shi, who runs a jewellery store at the ground floor of the Ludu International Commercial Plaza, said dozens of firefighters and special weapons and tactics (SWAT) officers entered the mall, and asked people to evacuate.
"I didn’t know what was happening, but suddenly, I saw people running in a panic," he said.
"No one had ever experienced something like this, and we weren’t mentally prepared for it... This kind of random incident is terrifying and unsettling," he said, adding that he had "narrowly escaped" death.
Discussions about the incident now appear to have been censored on Chinese social media.
The supermarket was open for business on Tuesday but with additional security.
Firearms are banned in China but the country has seen a spate of knife attacks in recent months.
Last month, a 10-year-old Japanese student died a day after he was stabbed near his school in southern China.
In June this year, four US college instructors were stabbed in a public park in the northeast city of Jilin. In May, a man stabbed dead two people and wounded 21 others at a hospital in the southern province of Yunnan.