The US Senate on Thursday passed a $740.5 billion bill setting Pentagon priorities, but which President Trump has threatened to veto over a provision that removes Confederate names from military bases.
The Senate's version of the National Defense Authorization Act for critical defense spending passed by a vote of 86 to 14, a veto-proof result that saw several Republicans defy the president and support the base-renaming measure.
The House of Representatives approved its own version of the bill, which also included a provision to rename several US bases named after Confederate generals who fought on the pro-slavery side of the 1861-1865 Civil War.
The House vote was also well beyond the two-thirds necessary to override a presidential veto, setting up a likely clash with the White House.
The two chambers will now negotiate a compromise version of the bill, a process that is expected to take months before it reaches the president's desk.
A defense authorization bill has cleared Congress every year since 1961.
This year's Senate version includes a three percent pay raise for troops and a Pacific initiative to deter aggression from China.
"The NDAA gives our military the personnel, equipment, training and organization needed to… thwart any adversary who would try to do us harm," Senate Armed Services Committee chairman James Inhofe, a Republican, said in a statement.
"I don't want a fair fight out there, I want to be superior — and this bill does that."
Confederate base names have come under scrutiny in recent months as protesters against police brutality and racial injustice target symbols of the country's legacy of slavery.
Trump has pushed back against the protesters, calling them "thugs" and "terrorists," and on Tuesday the White House issued a statement highlighting Trump's opposition to the NDAA.
It called the base-renaming measure "part of a sustained effort to erase from the history of the nation those who do not meet an ever-shifting standard of conduct."