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.
Easer Egg Roll brings thousands to White House
Lytro unveils camera that can focus a photo after shooting it