The state House tentatively passed the $19.7 billion budget with a 73-44 super-majority.
The House is expected to take its final vote shortly after midnight and send it to Gov. Bev Perdue.
Democrats said the budget harms public schools, mental health and other public services. Republicans said Democrats' predictions of doom were overblown.
Seventy-three votes would be enough to override a veto. Perdue has repeatedly bashed the budget, but has not indicated whether she would veto it.