The US Senate has passed a gun control bill - the most significant firearms legislation in nearly 30 years.
It imposes tougher checks on young buyers and encourages states to remove guns from people considered a threat.
In a rare bipartisan breakthrough on gun control measures, 15 Republicans joined Democrats in the Senate to approve the bill.
It still needs the endorsement of the lower house before being signed into law by President Joe Biden.
A vote in the Democrat-controlled House of Representatives is expected soon.
The president urged a quick vote "on this bipartisan bill" despite it falling far short of his demands. Gun control activists and most Democrats would also like to see far more stringent measures on gun control.
"Tonight, after 28 years of inaction, bipartisan members of Congress came together to heed the call of families across the country and passed legislation to address the scourge of gun violence in our communities," Mr Biden said.
The bill came after mass shootings last month at a supermarket in Buffalo, New York, and a primary school in Uvalde, Texas, that left 31 people dead.
The reforms include:
Tougher background checks for buyers younger than 21
$15bn in federal funding for mental health programs and school security upgrades
Funding to encourage states to implement "red flag" laws to remove firearms from people considered a threat
Closing the so-called "boyfriend loophole" by blocking gun sales to those convicted of abusing unmarried intimate partners
President Biden has pushed for bigger reforms - including a ban on assault weapons, which were used in the Texas and Buffalo mass shootings - or at least an increase in the age at which they can be purchased.
The gunman in the Texas shooting is believed to have purchased two semi-automatic rifles days after turning 18.
The bill is also significant because it is the first time in decades that proposed reforms have received this level of support from both Democrats and Republicans.
Historically, efforts to strengthen US gun laws have been blocked by the Republican party.
This time the vote in the 100-member Senate was 65-33.
All 50 Democrats, including the party's most conservative members, Senators Joe Manchin and Kyrsten Sinema, voted for the bill.
They were joined by deal-making Republicans, including the party's Senate Leader Mitch McConnell and Lindsey Graham, who is a close ally of former President Donald Trump and a traditional opponent of gun-control legislation.