In announcing the charges, Marine Colonel Stewart Navarre said a press release issued the day after the killings wrongly reported that 15 Iraqi civilians were killed by a roadside bomb and that marines and Iraqi army soldiers killed eight fighters in a subsequent firefight.
Lance Cpl Stephen Tatum:
Unpremeditated murder, negligent homicide and assault
Lance Cpl Justin L Sharratt:
Staff Sgt Frank D Wuterich:
Unpremeditated murder, soliciting another to commit an offence and lying on an official statement
Sgt Sanick Dela Cruz:
Unpremeditated murder and providing a false official statement
1st Lt Andrew
Dereliction, providing a false official statement and obstructing justice
Capt Lucas McConnell: Dereliction
Capt Randy Stone: Violation of a lawful order and dereliction
Lt Col Jeffrey Chessani:
Violation of a lawful order and dereliction
"We now know with certainty ... that none of the civilians were killed by the IED (improvised explosive device) explosion," he said.
Marine Corps squad leader Staff Sergeant Frank Wuterich, 26, who led the squad, was charged with 13 counts of murder.
The documents did not explain why Wuterich was not charged in all 24 deaths.
Others charged with murder are Sgt Sanick Dela Cruz, 24, Lance Cpl Justin Sharratt, 22, and Lance Cpl Stephen Tatum, 25.
The remaining four marines are charged with "failure to properly report and/or investigate the deaths.
"The reporting of the incident up the chain of command was inaccurate and untimely," Navarre said.
John Sifton, senior researcher with New York-based Human Rights Watch, welcomed the charges but said accountability for the killings needed to run further up the chain of command.
He said: "If the military really wants to stop future abuses it shouldn't just focus on low-level offenders, it needs to focus on the systemic issues that lead to war crimes."
The Iraqi civilians were shot dead in the western Iraqi town on November 19, 2005.
The incident is one in a series of cases in which US service members have been accused, and in some cases convicted, of involvement in killing civilians.
Few details have been made public about the charges, although a US military investigation centred on a squad of marines lead by Staff Sergeant Wuterich.
Earlier in the year, Wuterich sued John Murtha, a Democratic House member, when he said US troops "killed innocent civilians in cold blood".
Captain Lucas McConnell, who was monitoring fighting in and around Haditha on the day of the incident, is also expected to face charges, his lawyer told Reuters.
McConnell may be accused of dereliction of duty for his reports on the incident.
Once charged, the defendants are entitled to an Article 32 hearing, in which a military judge would decide if there is enough evidence to convene a court martial.
Frank Wuterich's lawyers argued that the marines were engaged in a battle [AP]
Iraqi witnesses say the marines shot civilians in their homes in retaliation over the death of Lance Corporal Miguel Terrazas, who was killed by a roadside bomb that exploded under a convoy rolling through Haditha, 96km north of Baghdad.
Defence lawyers dispute that version of events and say the men were engaged in a battle in Haditha after the bomb exploded and the civilians may have died during the fighting.
Two inquiries were launched into the incident, one into the shooting and another into the marines' procedures afterwards.
Earlier this year, George Bush, the US president, said that any US marine guilty of shooting Iraqi civilians would be punished.