Twenty people have been killed and another 26 injured in a mass shooting in the city of El Paso, Texas governor Greg Abbott has confirmed.
He described it as one of the deadliest days in the state's history.
The massacre happened at a Walmart store near the Cielo Vista Mall in El Paso, Texas, a few miles from the US-Mexico border.
At least 26 people, including children, are being treated at local hospitals.
A young white man is in custody and is believed to be the sole shooter, police say.
He has been named by US media as 21-year-old Patrick Crusius, a resident of the Dallas area.
CCTV images said to be of the gunman and circulated on US media show a man in a dark T-shirt wearing ear protectors and brandishing an assault-style rifle.
US President Donald Trump described the attack as "an act of cowardice".
"I know that I stand with everyone in this country to condemn today's hateful act. There are no reasons or excuses that will ever justify killing innocent people", he wrote on Twitter.
The victims of the attack have not yet been named. However, Mexico's President Manuel Lopez Obrador said three Mexicans were among those killed, Reuters news agency reported.
The attack came less than a week after a teenage gunman killed three people at a California food festival.
The Texas shooting has been dubbed the eighth deadliest in modern US history.
"We as a state unite in support of these victims and their family members," Mr Abbott said.
"We must do one thing today, one thing tomorrow and each and every day after this - we must unite."
Police and FBI are investigating whether an anonymous white nationalist "manifesto", shared on an online forum, was written by the gunman. The document says the attack was targeted at the local Hispanic community.
The first reports of a shooting emerged at about 10am local time (5am NZT).
Police said the Walmart was "at capacity" with shoppers buying back-to-school supplies at the time of the attack.
Police spokesman Sergeant Robert Gomez said the suspect was a white male in his 20s. No officers had fired their weapons in apprehending him, he added.
A man who was in the shopping centre at the time of the attack recalled the moment that he found out about the shooting.
"There were employees, they were coming in and they would tell me that they heard some gunshots and that people just started bolting straight into the store in order to get to cover. In the meantime I was just trying to stay calm, but I was freaking out internally," he told CBS News.
Another witness, Glendon Oakly, told CNN that he was in a sporting goods store inside the shopping centre when a child ran inside "telling us there's an active shooter at Walmart".
Mr Oakly said no-one took the child's report seriously, but just minutes later he heard two gunshots.
"I just thought about getting the kids out of the way," he said.
Police said they no longer believed there was any immediate threat to the public, but were continuing searches. A family reunification area had been set up nearby for those searching for loved ones.
El Paso Police Department tweeted that blood donations were "needed urgently".
Blood needed urgently. Multiple injured transported to various hospitals. Blood donation centers Vitalent Blood Services at 424 s Mesa Hills and 133 N Zaragoza— EL PASO POLICE DEPT (@EPPOLICE) August 3, 2019
What reaction has there been?
"This is a tragedy that we never, ever would have thought would happen in El Paso," El Paso Mayor Dee Margo told CNN. "It tears me up."
Walmart tweeted that it was "in shock over the tragic events" and was "working closely with law enforcement".
We're in shock over the tragic events at Cielo Vista Mall in El Paso, where store 2201 & club 6502 are located. We’re praying for the victims, the community & our associates, as well as the first responders. We’re working closely with law enforcement & will update as appropriate.— Walmart (@Walmart) August 3, 2019
Democratic presidential candidate Beto O'Rourke has abandoned a campaign event in Las Vegas to return to his home town of El Paso.
Earlier, he spoke at a labour forum, telling the crowd the shooting shattered any illusion that gun reform will "come of its own accord" in the US.
"We know that there's a lot of injury, a lot of suffering in El Paso right now," he said.
Other Democratic presidential candidates also responded to the shooting with calls for gun control.
New Jersey Senator Cory Booker was among them, saying the US seems to be "accepting the idea that these [shootings] are going to be a regular occurrence".
Texas Attorney General Ken Paxton, however, said gun control would probably not have stopped the attack.
He added that if a "crazy" gunman launches such an attack, there is no way that law enforcement officers could be there to stop it.
"The best way is to be prepared to defend yourself," he told CBS News.