The incident occurred Sunday night in downtown Chengdu, capital of Sichuan province in southwest China, the official Xinhua News Agency reported.
Those injured included a 10-year-old girl who was severely wounded, the China Central Television reported.
Police captured the suspect, the report said.
The suspect's motive for the attack and other details were not immediately available.
A man holding a knife killed two boys and a baby girl and injured 13 more, some of them critically, on a moving bus in central China's Henan province Aug. 19. The man escaped but was later caught by police.
Pregnant Mila Kunis wins 'Best Villain' at MTV Movie Awards
Biologists detail four new deep-sea 'killer sponges'