Republicans in the Wisconsin state senate have approved a plan to strip public-sector unions of most of their collective bargaining rights.
The US state's 14 Democratic senators had sought to prevent the move by fleeing the state, leaving the chamber short of the number needed for a vote.
But Republicans used a procedural move to allow them to vote on the measure in committee instead.
Crowds of protesters swamped the state capitol in Madison following the vote.
"The whole world is watching," they shouted as police guarded the entrance to the senate chamber.
In the senate gallery, spectators shouted "you are cowards" as voting took place.
The plan has prompted weeks of protests in support of public workers.
The Republican-controlled state assembly is due to take up the legislation on Thursday morning, after which it would go to Republican Governor Scott Walker for signature.
Mr Walker argues the move is needed to help tackle a $3.6bn budget gap over the next two years.
But critics say it is intended to weaken the power of the unions, which tend to back the Democrats in elections.
The Democrats had called earlier on Wednesday for Republicans to compromise over public-sector unions' bargaining rights.
But Mr Walker's proposal was approved by a special conference committee after it was stripped of financial measures, meaning a quorum was no longer needed in the Senate. No Democrats were present to vote against the legislation. Republican Senator Dale Schultz cast the only no vote.
"I applaud the legislature's action today to stand up to the status quo and take a step in the right direction to balance the budget and reform government," the governor said in a statement.
He said the state's Democratic senators - who fled to neighbouring Illinois nearly three weeks ago to block a vote - had had plenty of chances to come back to Wisconsin and act.
But Democratic senate minority leader Mark Miller said the Republicans had shown disrespect for the people of Wisconsin and their rights.
"Tonight, 18 senate Republicans conspired to take government away from the people," he is quoted by the Associated Press news agency as saying.
"Tomorrow we will join the people of Wisconsin in taking back their government."
State unions had said they would agree to Mr Walker's proposed changes to their benefits - which would amount to an 8% pay cut - as long as they retained collective bargaining rights.