The attack in Uvalde - a small community about an hour from the Mexican border - was the deadliest US school shooting in years, and the latest in a spree of bloody gun violence across America.
“It’s time to turn this pain into action for every parent, for every citizen of this country,” Biden said, his voice heavy with emotion.
“It’s time for those who obstruct or delay or block commonsense gun laws - we need to let you know that we will not forget,” he said.
“As a nation, we have to ask when in God’s name are we going to stand up to the gun lobby? When in God’s name will we do what we all know in our gut needs to be done?”
Texas Governor Greg Abbott, addressing an earlier news conference, named the suspect as Salvador Ramos, an 18-year-old local resident and a US citizen.
“He shot and killed, horrifically and incomprehensibly,” Abbott said.
Texas Department of Public Safety officials told CNN the gunman had shot his grandmother before heading to Robb Elementary School around noon where he abandoned his vehicle and entered with a handgun and a rifle, wearing body armour.
The gunman was killed by responding officers, the officials said, adding one adult had also been killed in the attack.
Footage showed small groups of children weaving through parked cars and yellow buses, some holding hands as they fled under police escort from the school, which teaches students aged around seven to 10 years old.
It was the deadliest such incident since the 2012 Sandy Hook shooting in Connecticut, in which 20 children and six staff were killed.
The White House ordered flags to be flown at half-staff in mourning for the victims - whose deaths sent a wave of shock through a country still scarred by the horror of Sandy Hook.
In the immediate aftermath of the attack, Robb Elementary - which teaches more than 500, mostly Hispanic and economically disadvantaged students - called on parents not to rush in to get their children.
“You will be notified to pick up students once all are accounted for,” the school said on its website soon after the attack.
‘Happens nowhere else’
Ted Cruz, a pro-gun rights Republican senator from Texas, tweeted that he and his wife were “lifting up in prayer the children and families in the horrific shooting in Uvalde.”
But Senator Chris Murphy, a Democrat from Connecticut, where the Sandy Hook shooting took place, made an impassioned appeal for concrete action to prevent further violence.
“This isn’t inevitable, these kids weren’t unlucky. This only happens in this country and nowhere else. Nowhere else do little kids go to school thinking that they might be shot that day,” Murphy said on the Senate floor in Washington.
“I’m here on this floor to beg, to literally get down on my hands and knees and beg my colleagues: Find a path forward here. Work with us to find a way to pass laws that make this less likely.”
The deadly assault in Texas follows a series of mass shootings in the United States this month.
On May 14, an 18-year-old man shot 10 people dead at a Buffalo, New York grocery store.
Wearing heavy body armor and wielding an AR-15 rifle, the self-declared white supremacist livestreamed his attack, having reportedly targeted the store because of the large surrounding African American population.
The following day, a man blocked the door of a church in Laguna Woods, California and opened fire on its Taiwanese-American congregation, killing one person and injuring five.
Despite recurring mass-casualty shootings, multiple initiatives to reform gun regulations have failed in the US Congress, leaving states and local councils to strengthen - or weaken - their own restrictions.
The National Rifle Association has been instrumental in fighting against stricter US gun laws. Abbott and Cruz are listed as speakers at a forum that is being held by the powerful lobby in Houston, Texas later this week.
The United States suffered 19,350 firearm homicides in 2020, up nearly 35% compared to 2019, the Centers for Disease Control and Prevention (CDC) said in its latest data.