Twelve Republican senators broke party ranks to side with Democrats, approving a proposal to revoke the proclamation by 59-41.
The Democratic-controlled House of Representatives last month backed the measure.
Following Thursday's vote, Mr Trump tweeted: "VETO!"
Congress needs a two-thirds majority of both chambers to override a presidential veto, which is viewed as unlikely in this case.
Nevertheless, the vote will be seen as an embarrassing loss for the president on his signature domestic issue.