The SWAT team leader sent to a Kunming train station as knife-wielding attackers hacked passengers to death said he shot five of the suspects in 15 seconds, preventing more bloodshed.
After firing two warning shots, the officer shot a masked woman who lunged at him with a knife, before rapidly shooting another four of the attackers, the Legal Daily newspaper reported.
Officials have blamed Uygur separatists from Xinjiang for Saturday night's attack, which killed 29 victims and wounded another 143. Four of the attackers were killed and one woman suspect was wounded.
Watch: SWAT team leader recounts brush with death
No group has claimed responsibility for the attacks, but the authorities said separatist group flags were found at the scene.
Rebiya Kadeer, the President of the World Uyghur Congress, an exile group, has urged Beijing to respond calmly to the attack in the country's southwest and not "demonise" Uygurs.
Yunnan's Communist Party chief, Qin Guangrong, said an arrested woman suspect had recovered consciousness and confessed to her crime, the People's Daily reported on its official Sina Weibo account.
The entire attack at the railway station lasted for about 25 minutes.
Xinhua reported that the attackers - eight in total - may have received training beforehand as they appeared to be expert at handling knives.
Police said on Monday they had captured three suspects and identified Abdurehim Kurban as their alleged leader.
Citing sources close to the police, the financial news outlet Caixin reported that the three captured later were suspected of providing support to the accused attackers.
State television said the SWAT team arrived 10 minutes after the attack had started.
Crowds were fleeing and the attackers were randomly stabbing and slashing at passengers at the station.
The leader of the team - the only member with an automatic rifle - fired warning shots, but the attackers continued to advance, he said.
Leading the pack running towards him was a woman assailant wearing a burqa-like black mask. When she was almost upon him the officer shot her.
"The closest one to me was less than two metres [away]. If I hesitated for one more second, I would be dead now," he said.
The other four assailants did not back down.
"I didn't have time to think, I shot them as fast as I could," he said. "After I shot all five, the first one, also the nearest to me, stood up again and threw a knife at me. Luckily I tilted my head."
Additional reporting by Reuters