The vote by the Senate Budget Committee on Thursday was 9-4.
The full Senate is scheduled to vote next week.
The panel heard more than four hours of testimony Thursday, mostly from union leaders urging Democratic legislators to reject the measure. The vote was split 4-4 among Democrats.
More than 2,000 protested outside the Statehouse.
The bill legislates health care changes that are typically bargained. It bases contributions to health benefits on employee income. Pension contributions would also rise.
The day brought an ugly showdown at the New Jersey capitol, as union workers heckled the Democrat who sponsored the bill and picketed outside. Two dozen union workers were arrested inside the hearing room after they stood up, locked arms and chanted "Kill the bill!" They were issued disorderly persons summonses.
Supporters of the legislation, including Republican Gov. Chris Christie, say the bill is needed to shore up the state's pension and retirement health care systems, which are underfunded by a combined $110 billion.
Unions want health benefits to continue to be negotiated, not legislated. Many Democrats agree.
Christie said public employees in New Jersey will eventually appreciate a deal he struck with Democratic leaders in the Legislature to overhaul both systems.
Speaking at the New Jersey Association of Counties in Atlantic City on Thursday, Christie said the overhaul is the key to slowing property tax hikes in the state. Christie said the bipartisan compromise would become a national model for addressing rising costs.
Associated Press writer Beth DeFalco and Josh Lederman contributed to this report.