The attack happened around 1 pm at Joy City in the commercial area of Xidan, Xicheng District, police said.
A woman injured in the attack died at the hospital. Three men and nine women were injured in the attack. Their condition was not critical, state-run Xinhua news agency reported.
The police have caught the suspect and identified him as a 35-year-old man, surnamed Zhu.
The suspect has claimed responsibility for the attack and said he was motivated by personal grievances, police officials said.
More From This Section
Violent crime is rare in China compared with many other countries, but there has been a series of knife and axe attacks in recent years, many targeting children.
Last year, a man wounded 11 children with a blade at their kindergarten in the Guangxi region. Seven children were wounded in a November attack by a man with a knife outside in another area.
Social revenge attacks by disgruntled people have become common in China to highlight the grievances.