The navy's Marcilio Dias Hospital in Rio said 17 people were hospitalised with burns. Twenty-three others were treated and released.
The navy estimated that up to 100 people could have been at the depot on Boqueirao Island at the time of the explosions. Thirty-seven homes also were destroyed.
"The wounded were hugging each other and crying," said state congressman Jose Morais, commodore of the nearby Guanabara Yacht Club. "It looked like a war movie here."
The detonations began about 5.30pm on Sunday and lasted 90 minutes, creating a large cloud and blowing out doors and windows of buildings near by. The blasts were felt up to 10 miles away. Smaller explosions continued hours afterward.
"Suddenly there was an explosion and an intense heat that people felt burning on the skin. There was general panic, and people started running through the streets," Joao Barreiras, a resident of nearby Governor's Island, said.
Brazilian television reported that the depot contained conventional sea- to-sea Exocet missiles as well as guns, rifles, gunpowder and grenades. This was denied by the navy, which said that only ammunition for pistols, rifles and cannons was stored on the island.
Some reports speculated that a hot-air balloon - a popular staple at street parties this time of year - could have caused the explosions. The government said an official investigation would begin immediately.
Mr Morais said members of his yacht club rescued a dozen injured navy cadets who swam from the island.Reuse content