Nineteen students and at least two teachers have died after a shooting at a primary school in Texas, US media say, citing state police.
The 18-year-old gunman carried out the killings at Robb Elementary School in the city of Uvalde.
The carnage began with the suspect, identified as Salvador Ramos, shooting his own grandmother, who survived, authorities said.
He fled that scene and crashed his car near the school. There he launched a bloody rampage that ended when he was killed, apparently shot by police.
One of the teachers killed has been named in US media as Eva Mireles. Her page on the school district's website said she has a daughter in college and loved running and hiking.
After confusing early accounts of the death toll, the state attorney general's office in an official statement put the tally of lives lost at 18 children and two adults, including the gunman. A Texas DPS spokesperson later told CNN that 19 school children and two adults were killed, not counting the shooter.
State Senator Roland Gutierrez who has also released the higher death toll said he was briefed by state police on the fatalities.
The children attending the school are aged between seven and 10 years.
The suspect was armed with a handgun and an AR-15 semi-automatic rifle, two law enforcement sources have confirmed to CBS News.
He also had high-capacity ammunition magazines when he entered the school, according to the sources.
Texas Governor Greg Abbott said the suspect is dead, and it is believed that responding officers killed him.
He named the suspect as Salvador Ramos, who lived in the area.
According to Abbott, Ramos abandoned his vehicle and went into the school carrying his weapons.
"He shot and killed horrifically, incomprehensibly, 14 students and killed a teacher," Abbott said earlier at his first media briefing.
Abbott says he and his wife, Cecilia, are mourning the day's "horrific loss" and he has urged the state of Texas to come together.
He also thanked the "courageous first responders" who worked to "secure the site" of the shooting.
Pete Arredondo, the Uvalde schools chief of police, told a news conference the shootings occurred just after 11.30am local time.
He confirmed the suspect, described as acting alone, is now dead.
In addition to the confirmed deaths, a number of people have been injured - but he did not specify how many.
Two officers were struck when they apparently exchanged gunfire with the shooter, Abbott said. They sustained non-life-threatening injuries, he said.
A heavy police presence surrounded the school on Tuesday afternoon, with officers in heavy vests diverting traffic and FBI agents coming and going from the building.
Children dying as if 'on a battlefield' - Biden
US President Joe Biden who has returned home today from a visit to Japan told a media briefing at the White House that Americans would not forget anyone who stood in the way of gun reforms.
"When in God's name are we going to stand up to the gun lobby?
"I am sick and tired of it. we have to act. Don't tell me we can't have an impact on this carnage.
"The idea that an 18-year-old kid can walk into a store and buy two assault weapons is just wrong.
"These kinds of mass shootings rarely happen anywhere else in the world."
A visibly shaken Biden asked Americans to pray for the children of Uvalde tonight.
He began his remarks by praising the "beautiful, innocent" children who had been shot, and their traumautised pupils who watched "friends die as if they're in a battlefield".
Biden has ordered the US flag to be flown at half-mast until sunset on Saturday following the mass shooting.
In a statement, he ordered US flags across all public buildings and grounds, military posts and naval stations, and all naval vessels to be flown at half mast, as well as flags at embassies, consular offices and military and naval facilities in the US and abroad.
US Vice-President Kamala Harris called for "reasonable and sensible" policies to ensure other mass shootings don't happen.
Speaking at an event in Washington DC on Tuesday night, Harris said "every time a tragedy like this happens, our hearts break ... and yet it keeps happening".
"Enough is enough," she said. "As a nation, we have to have the courage to take action, and understand the nexus between what makes for reasonable and sensible public policy, to ensure something like this never happens again."
In a tweet reacting to the shooting, former presidential candidate Hillary Clinton said "we are becoming a nation of anguished screams".
She called for gun control: "We simply need legislators willing to stop the scourge of gun violence in America that is murdering our children."
Shootings at primary schools, where pupils range in age from five to 11, are still relatively rare.
The attack on Tuesday comes amid a national rise in gun violence.
The Uvalde Consolidated Independent School District - around 85 miles (135km) west of the city of San Antonio - told the BBC that students had been evacuated from the school.
Local hospitals disclosed that students from the school were being treated by their emergency services.
A 66-year-old woman and a 10-year-old girl were being treated at a hospital in San Antonio, and both were in a critical condition, hospital officials said earlier.
The Uvalde Memorial Hospital posted on Facebook that 13 children had been taken to hospital "via ambulances or buses".
Two "individuals" were dead when they arrived at hospital, the Facebook post said earlier.
The last day of classes for students in the school district was scheduled for Thursday. Seniors at the local high school in Uvalde, a community of about 16,000 residents, are due to graduate on Friday.
CNN is reporting that Robb Elementary had 535 students in the 2020-21 school year. About 90 percent of students are Hispanic and about 81 percent are economically disadvantaged, it said.
Schools regularly targeted
School shootings have become recurring emergencies in the US, with 26 recorded last year, according to EdWeek, an education trade publication.
Active shooter lockdown drills are a common part of the school curriculum, from primary to high school.
In response to today's events, Texas attorney general Ken Paxton said the solution may be arming teachers.
Speaking to conservative news outlet Newsmax, Paxton said that "having potentially teachers and other administrators be armed" would help stop future attacks while authorities arrived.
"First responders typically can't get there in time to prevent a shooting. It's just not possible unless you have a police officer on every campus," he said. "I think you're going to have to do more at the school."
The Texas rampage is the latest in a series of mass shootings in US schools that have shocked the world and fuelled a fierce debate between advocates of tighter gun controls and those who oppose any legislation that could compromise the right of Americans to bear arms.
The 2012 shooting at Sandy Hook Elementary School in Connecticut shocked Americans. Twenty of the 26 victims in that attack, which was carried out by a 20-year-old, were between the ages of five and six.
A 2020 report from the US Government Accountability Office found that about two-thirds of all school shootings happen at the high school level, and that shootings in elementary schools are most commonly accidental.
- BBC / Reuters