The shocking carnage in a country accustomed to gun violence started on Saturday morning at a Walmart store in El Paso, Texas, where 20 people were killed and 26 others wounded.
El Paso, which has about 680 000 residents, is in West Texas and sits across the border from Juarez, Mexico.
Authorities were investigating the possibility the shooting was a hate crime, working to confirm whether a racist anti-immigrant screed posted online shortly beforehand was written by the man arrested in the attack.
Two law enforcement officials, who spoke to The Associated Press on condition of anonymity, identified the suspect as 21-year-old Patrick Crusius.
El Paso police confirmed the gunman is from Allen, near Dallas.
President Donald Trump tweeted: “God be with you all!”
Then early Sunday morning in Dayton, Ohio, an assailant armed with a rifle shot nine people and wounded at least 16 others.
Police said the incident began at 1am in Oregon District, a historic neighbourhood known for its nightclubs, bars, art galleries and shops.
The motive behind the shooting was not immediately clear and cops believed the shooter had acted alone.
Officers who were on patrol in the area confronted and killed the shooter, whose identity, age or gender were not immediately disclosed, according to Reuters.
This brings the number to 22 deadly mass shootings in the USA this year, claiming the lives of 125 people.