Enterovirus 71 began spreading in Fuyang in the eastern province of Anhui in early March but authorities only reported it publicly on Sunday, saying there had been 789 cases.
By Thursday, the number had risen to 2,946, Xinhua said.
Enteroviruses are spread mostly through contact with infected blisters or faeces and can cause high fever, paralysis and swelling of the brain or its lining. There are no vaccines or antiviral agents available to treat or prevent the virus.
"There was one more fatality on Thursday afternoon, so the latest death toll is 21," Xinhua said, citing Anhui's health chief.
The delay in reporting the virus to the public has triggered heated discussion and criticism in the Chinese media, which said local government officials should be sacked.
But the Health Ministry has come to the defence of the Fuyang government, saying the belated reporting was because medical teams were trying to work out what the illness was.
Officials have said that almost all of those infected were children under the age of six and most were under two.
A total of 879 children were still in hospital for treatment, with nine in critical condition, while 849 had fully recovered, Xinhua said.
"The majority of the new patients have shown only light symptoms and the rapid increase of infections is partly due to better reporting and public awareness," the Beijing News on Friday quoted an Anhui government spokeswoman as saying.
Health officials said people could take simple hygiene steps to prevent the spread of the virus.
Treatment for the viral infection focuses on managing its complications, which can include meningitis and heart failure, according to the World Health Organisation.