Democrats united against the bill, and they needed seven Republican members to join with them to stop it. In the end they got six.
Pushing the bill through the Senate has been tough for supporters of the plan, with the Republican leader of the state Senate removing two Republicans opposed to the measure to get the bill to the Senate floor today.
Those two Republicans, Sens. Bill Seitz and Scott Oelslager, voted no. So did four of their GOP colleagues: Sens. Jim Hughes, Tim Grendell, Tom Patton and Gayle Manning. All 10 of the 33-member state Senate's Democrats also voted no.
Now the bill moves to the House, where Republicans have a 59-40 advantage.
Ohio's bill would go farther than Wisconsin's, which exempted police officers and firefighters from its proposed anti-collective bargaining language. The Ohio bill also makes it illegal for state workers to strike and gives local governments new powers over contract negotiations with union workers.
Proponents of the bill say it could save Ohio taxpayers upwards of $1 billion in benefits payments, and Kasich and others have said SB 5 is required to balance the state budget. (For more on the details of SB 5, see this AOL News explainer.)
Union activists on the ground in Ohio tell TPM that the crowds gathered to protests SB 5 chanted "shame on you" as the bill passed.
Former Gov. Ted Strickland (D), who lost to Kasich last November, has suggested opponents could launch a ballot initiative campaign to repeal SB 5 if it becomes law as is expected.
This post has been updated.