SPRINGFIELD — The Illinois House on Thursday narrowly voted to override Gov. Bruce Rauner’s veto of a tax measure that will both hike the personal income tax rate and fuel the political war between the governor and Illinois House Speaker Michael Madigan — while also ending a budget impasse that has decimated the state’s finances.

But there’s, of course, no tidy resolution to a 736-day stalemate. While the House voted to override a revenue, spending and budget implementation plan, there’s rampant criticism from Rauner and Republicans who say there’s much more work to be done to help reform the state.

Madigan credited the budget resolution to the bipartisan negotiations of legislators who “looked beyond partisan differences and put the best interest of our state and its residents first.”

“The people in this chamber did not do what was easy today but we did what was right for the future of our state,” Madigan said on the House floor after the overrides. “There are a lot of things that will be said about this vote, but the most important thing I can point to is that Republican legislators and Democratic legislators got this done together.”

But Rauner immediately called the House overrides of a revenue plan “another step in Illinois’ never-ending tragic trail of tax hikes.”

The revenue bill will increase the 3.75 percent personal income tax rate to 4.95 percent to generate about $4.3 billion. An increase in the corporate tax rate from 5.25 percent to 7 percent is expected to bring in about $460 million. It also increases the earned income tax credit for low-income families, ends some corporate tax breaks, and reinstates the research and development tax credit.

While the governor needs that cash flow to keep the state running, he’s targeting the speaker for the income tax hike — even though the rate was agreed upon by his own office and Republicans during budget negotiations. Both said they’d approve the hike if it was tied to a four-year property tax freeze.

Rauner, too, criticized the passage of a $36.1 billion spending plan, which he called “not balanced,” lacking in cuts and ignoring the state’s backlog. The governor said it lacks property tax relief and term limits — his two priorities going into his re-election campaign.

Finger-pointing and critiques aside, the state now has a budget in place for the first time since July 1, 2015, sending funds to social service agencies, public universities, primary and secondary education and other governmental functions.

It took the House two days to vote for the override, citing attendance issues. But the required 71 yes votes came from 10 House Republicans, down from the 15 who supported the measure on Sunday.

Republicans who switched from a yes vote on Sunday to a no were Reps. John Cavaletto, R-Salem; C.D. Davidsmeyer, R-Jacksonville; Charles Meier, R-Okawville; and David Reis, R-Sainte Marie. Rep. Robert Pritchard, R-Hinckley, voted to approve the measure on Sunday, but was absent for the override.

The switches were offset by three Democrats who changed their votes. Reps. Sue Scherer, of Decatur, Rita Mayfield, of Waukegan, and Natalie Manley, of Joliet, all voted no on Sunday but yes for the override.

The end of the impasse came on a strange day in the Capitol. Voting happened after a two-hour lockdown and hazardous materials incident, sparked by a suspicious substance that was found in the governor’s office and in other areas of the Capitol.

State Rep. Steve Andersson, R-Geneva, was among the Republicans who initially voted for the measure on Sunday and stuck to his vote. He told lawmakers that he’s been receiving hate mail and death threats.

“If I have to take a couple of days of that I will be happy to do so,” to end the impasse, he said.

Others said the budget package is missing key reforms, like pension reform. Rep. Keith Wheeler, R-Oswego, called reforms Democrats had offered up “lipstick reforms that won’t cut it.”

“It’s time for us to get real,” Wheeler said. “It’s time for us to get to work and get reforms into actual statutes.”

The measures needed 71 votes for an override. The revenue bill passed with 72 votes on Sunday — including 15 House Republicans. The Illinois Senate quickly voted to override Rauner’s vetoes on Independence Day.

During a two-day lag in which the House did not take up votes, Moody’s Investor’s Services offered a stark reminder, placing the state’s current rating of Baa3 “on review for possible downgrade.” Moody’s and two other credit agencies had warned lawmakers of a “junk” downgrade should they not enact a budget by July 1. But last week, S&P and Fitch called the passage of the budget bills progress.

Still, according to Moody’s, “despite the progress toward budget balance” in the legislative package, “… the plan appears to lack concrete measures that will materially improve Illinois’ long-term capacity to address its unfunded pension liabilities.”

Although the spending plan will get money back to social service agencies and public universities, there are some missing holes to fill, including funding for education. The spending plan includes an additional $350 million to go toward a school funding formula.

Democrats on Sunday added language to the measure that would block money for schools unless the governor signs an “evidence-based model” school formula — in their desire to see a Democratic-sponsored school-funding formula bill be signed.

Rauner in his veto said the measure “holds K-12 school funding across Illinois hostage to force a bailout of Chicago Public Schools.”

The governor has said he’ll veto a Democratic-sponsored school-funding formula bill, but Illinois Senate Democrats say they plan to send the bill to his desk soon and will try to override his veto. That means schools won’t get money from general state aid funds without a school formula bill either signed or overridden.

Should Rauner veto the school-funding bill, the Senate would have to return to Springfield this summer for an override, followed by the House.

The state will also have to deal with a massive bill backlog approaching $15 billion. The spending plan includes language to have the state pay down half of the backlog through borrowing and using cash from other available state funds. There’s also not enough funds for the government employee pension system.