Confirming disciplinary charges against 16 US service personnel, General Joseph Votel said the "tragic strike" was due to human and technical errors.
A US gunship mistook the hospital at Kunduz, run by Medecins sans Frontieres (MSF), for a building that had been seized by Taliban fighters.
No-one will face criminal charges.
But as the error was "unintentional", it did not constitute a war crime, Gen Votel said, an accusation MSF has previously levelled at the US.
Instead, those punished were hit with measures such as suspension from command and letters of reprimand, which could end their military careers.
Gen Votel, the head of US Central Command, gave details of a US investigation, describing a crew tired from days of fighting taking off earlier than planned without the correct preparatory information.
About 10 minutes into the raid, MSF doctors on the ground rang US officials pleading for them to stop, but it was another 20 minutes before they ceased, he said.
"The investigation found that the incident resulted from a combination of human errors, process errors and equipment failures and that none of the personnel knew they were striking a hospital," he said.
He added: "The fact this was unintentional takes it out of the realm of being a deliberate war crime."
MSF said that it was "incomprehensible" that the bombing had not been halted.
"Today's briefing amounts to an admission of an uncontrolled military operation in a densely populated urban area, during which US forces failed to follow the basic laws of war," said MSF President Meinie Nicolai.
The charity repeated a call for an independent investigation into the incident.
Survivors of the bombing have expressed dismay that none of those disciplined will face criminal charges.
Khalid Ahmad, who still cannot move his leg after the attack, told AP those responsible "are criminals, and they must be jailed".