Democrats in the US House of Representatives have approved $4.5bn (£3.5bn) in humanitarian aid for the southern border.
Several migrant deaths, coupled with reports of “severely neglected” children at a Texan border patrol station, have helped shape the debate.
But the bill faces a tough path through the Republican-controlled Senate.
It is considering a rival bill with fewer restrictions on how border agencies can spend the money.
The Democrats’ version, in contrast, contains several strict rules setting out that the funds can be used for humanitarian aid only, and “not for immigration raids, not detention beds, not a border wall”, a statement from House appropriations committee chair Nita Lowey said.
The bill was toughened up after some Democrats expressed concern over providing extra funds for agencies involved in the current situation, including those enforcing President Donald Trump’s “zero tolerance” policy which had last year led to migrant children being separated from their parents.
With the extra safeguards, it passed 230 to 195, roughly along party lines – with a few Democrats still refusing to back it.
The White House said President Trump would be advised to veto the House bill if it landed on his desk “in its current form”.
The administration accused the Democrats of seeking to “take advantage of the current crisis”.
Why is there a political crisis about the border?
Mr Trump’s “zero tolerance” policy was announced in early 2018. By prosecuting adults who crossed the border illegally, it had the effect of separating children from their parents.
Despite a court order requiring families to be reunited and an end to separations last year, hundreds remain in government shelters, to which the public – including journalists and rights activists – had little access.
But lawyers were recently given access to one facility in Clint, Texas, by a judge. They reported appalling conditions inside, in which children under 10 were caring for infants, and massive overcrowding.