Officials said the killer was 20-year-old Adam Lanza of New Jersey who died at the scene of the early morning shooting spree at Sandy Hook Elementary School in Newtown, Connecticut.
Sources said he had shot dead his mother Nancy, a teacher at the school, before turning his gun on her kindergarten class.
His father was found dead at home in Newtown, officials said. Another body was found at a separate crime scene in Connecticut, with unconfirmed reports indicating the he was one of Lanza's brothers.
Sources said Lanza was dressed in black, armed with four weapons and wearing a bullet-proof vest when he opened fire in the school. He is said to have gone from class to class firing at pupils and teachers with a .223-caliber Bushmaster rifle, and specifically targeted his mother's classroom.
The school principal, Dawn Hocksprung, 47, and a psychologist were believed to be among the dead, according to a parent.
Lanza's 24-year-old brother Ryan, of Hoboken, New Jersey, was being questioned by police. The gunman's girlfriend and another friend were missing in New Jersey.
Another person is being held in police custody after he was detained in the woods near the school wearing camouflage trousers, but police were not calling him a suspect. One witness said he shouted: "I didn't do it."
As Lanza attacked, some children fled through nearby woodland and back yards. Other survivors, some crying, were led to safety in a line with their hands on the shoulders of the child in front.
If the number of fatalities is confirmed, the Newtown killings would be the second-deadliest US shooting at an educational establishment, after 32 people died at Virginia Tech in 2007.
It also brought back chilling memories of Thomas Hamilton's shooting spree at Dunblane Primary School in March 1996, which left 16 children and their teacher dead.
Last night Sandy Hook teacher Kaitlin Roig told how she barricaded her 14 first-grade students in a bathroom and locked the door when she first heard gun shots.
"The kids were being so good. They asked: 'Can we go see if anyone is out there? I don't want to die, I just want to have Christmas.' I said, you're going to have Christmas and Hanukkah."
The incident is the latest in a series of mass shootings in the US this year, including Tuesday's assault by a lone gunman at a shopping mall in Portland, Oregon that left two dead.
President Barack Obama consulted FBI Director Robert Mueller and Connecticut Governor Dan Malloy to get an update and to "express his condolences and concern" for the victims and their families.
Sandy Hook School is in a residential, wooded neighborhood about 60 miles northeast of New York City. Police arrived at the school soon after 9.40am yesterday answering reports that a gunman was in the main office and one person had "numerous gunshot wounds".
Authorities initially believed that there were two gunmen and were searching cars around the school. It was unclear whether there is still a suspect at large.
The massacre prompted the town of Newtown to lock down all its schools and draw SWAT teams to the area. It emerged that one entire classroom of students may remain unaccounted for.
Parent Terese Lestik was relieved to find her five-year-old daughter, Eva, unharmed. "I heard a boom-boom,'' Eva said of the gunshots she heard earlier. I'm horrified,'' she said. "I just pray for whoever is hurt."
Pupil Venesa Bajraliu, nine, said: "I heard gunshots and I saw policemen. My teacher was scared and a little shaky. We went into the office and police came and took us into the firehouse."
She heard screams and gunshots over the intercom of the school, said her brother, Nergim, 17. He and his mother were the first to arrive at the school. He saw three victims, little kids, who were wounded.