Staff Sgt. Robert Bales pleaded guilty in a military courtroom to 16 counts of premeditated murder and other charges. He pleaded not guilty to one charge, impeding an investigation.
Bales, 39 was charged in the March 2012 attacks on two villages near the remote base in southern Afghanistan where he was posted.
Most of the victims were women and children, and some of the bodies were burned; relatives have told The Associated Press they are irate at the notion Bales will escape execution for one of the worst atrocities of the Afghanistan war.
A military judge will question the soldier about what happened before deciding whether to accept his guilty pleas.
Bales' attorney, John Henry Browne, has said he expects his client to admit to "very specific facts" about the killings at the hearing at Joint Base Lewis-McChord south of Seattle.
Bales was serving his fourth combat deployment when the rampage occurred, and had an otherwise good if undistinguished military record in a decade-long career. The Ohio native suffered from PTSD and a traumatic brain injury, his lawyers say, and he had been drinking contraband alcohol and snorting Valium - both provided by other soldiers - the night of the killings.
The case raised questions about the toll multiple deployments were taking on American troops. For that reason, many legal experts believed it was unlikely he would receive the death penalty, as Army prosecutors were seeking. The military justice system hasn't executed anyone since 1961, but five men currently face death sentences.