The vote came a day after the House approved the measure on a 290-137 bipartisan vote. The bill would impose a labor agreement hammered out by rail companies, labor leaders and the Biden administration months ago but rejected by workers in four of 12 unions.
An effort by Democrats to amend the deal to include seven days of paid sick leave for workers came up short when it failed to garner the Republican votes needed in the Senate. The House had endorsed the change on 221-207 vote with just three Republicans in support. The sick leave amendment, pushed by independent Senator Bernie Sanders of Vermont, failed on a 52 to 43 vote. Sixty votes were required for passage.
"Within this agreement, we're going to avoid the rail strike, keep the rails running, keep things moving," Biden said on Thursday. "And I'm gonna go back and we're gonna get paid leave not just for rail workers, but all workers."
Congress was able to pass the rail bill with lightning speed after Biden asked lawmakers to intervene Monday. A mandated cooling-off period is set to expire Dec. 9, after which freight workers would be allowed to walk off the job.
"Suppliers and businesses across the nation are going to begin shutting down operations soon if they think a strike is imminent," Senate Majority Leader Chuck Schumer warned his colleagues Thursday morning. "In that scenario, nobody wins and everybody loses."
Republicans agreed to quick consideration of the rail bill after being granted a vote on an amendment which would have changed the bill into one requiring a 60-day cooling off period extension. That amendment failed, attracting the support of just 26 senators.
Wyoming Republican Cynthia Lummis and North Dakota Republican Kevin Cramer led the fight to get their Senate colleagues on board with voting for the bill, warning of devastating job losses.
"Congress has been forced into a position to either intervene in labor negotiations or allow a rail strike that will cripple our economy," the senators wrote in a letter imploring fellow Republicans to vote for the bill. "Our response at this moment will determine whether rail workers receive their next paycheck, whether families can put food on the table this holiday season, and even whether the lights turn on."
Enough Republicans held their noses and voted for the bill despite concerns about interfering in the labor market.
The administration lobbied Democrats hard for the bill, which risked fraying ties between the party and labor unions.
Labor Secretary Marty Walsh and Transportation Secretary Pete Buttigieg met with Senate Democrats at lunch on Thursday to urge passage of the legislation. The White House and top Democrats touted that the bill would grant a 24 percent raise and prevent increased health insurance premiums.
House Speaker Nancy Pelosi told her caucus that some 750,000 jobs would be lost in the first two weeks of a rail strike.
Out of the 12 unions representing different types of rail workers, four representing roughly 54,500 workers rejected the contract. The unions that approved it represent about 43,000 workers, according to the National Railway Labor Conference.
Rail operators were set to begin slowing down operations as soon as this week in preparation for a strike, in part to make sure cargo isn't left stranded.