Republican Gov. Bruce Rauner on Monday signed a full-year budget he’s deemed “balanced” — marking the first budget he’s signed since taking office in 2015.

Flanked by Democratic and Republican lawmakers, Rauner — who faces a tough re-election battle come November — said the budget happened because of bipartisanship.

“We are signing a balanced budget for the first time in many years, on time. Great forward progress for the people of Illinois,” Rauner said at the Thompson Center in Chicago. “It is a compromise. It is not perfect. It is a good step in the right direction.”

And Rauner, who for years has blasted Illinois House Speaker Mike Madigan as his chief political adversary, thanked the Democratic speaker.

“I would personally like to thank Speaker Madigan, [Illinois Senate] President [John] Cullerton, [Illinois Senate Republican] Leader [Bill] Brady and [Illinois House Republican] Leader [Jim] Durkin, members of the General Assembly gathered here today and also around the state of Illinois. This was a great team effort. A great bipartisan effort. Very hard work. many long days many long hours.”

Since 2015, Rauner had offered up a series of reform priorities from his “Turnaround Agenda.” Madigan often accused the governor of “hijacking” a spending plan for his agenda.

But this year, the governor softened those demands, asking for the state not to spend more than it can bring in and imploring lawmakers to enact no new taxes. The governor, too, is campaigning on a platform about trying to roll back the 4.95 percent income tax rate that was hiked last year in order to end the impasse.

But the revenue from that hike is a big reason the state is seeing some stability.

So what’s different this year besides it being a campaign year?

Rauner said he has in the past introduced “significant cuts” that were not agreed to. He said this year an agreement was reached because of two reasons: pension savings and “unexpectedly high income tax revenues now, largely thanks to federal changes.” He cites those as regulatory relief for businesses and a new tax overhaul in Congress, which closed deductions.

And he said he hasn’t given up on his reform agenda: “I will continue to advocate for more reforms. We have got to change the structure of our pensions, of our cost of government and our economic competitiveness. We can’t solve our problems by just tax increases. Won’t happen. Can’t solve the problem.”

Rauner on Monday was asked whether it is disingenuous to campaign against the tax hike: “Not at all.”

The governor said there are missing elements to the budget, like comprehensive pension reform, regulatory relief for business and workers’ compensation reform. But he called it a necessary compromise.

“It’s not perfect,” Rauner said. “None of us got everything that we were looking for.”

Last week the Illinois General Assembly quickly passed the $38.5 billion spending plan. Many lawmakers called it a true compromise.

The budget includes a projected $445 million in pension cost savings. It also includes an additional $350 million for evidence-based funding for school districts, which will help the state in a years long process of meeting an adequacy target.

There’s also an additional $50 million for early childhood education and an increase of 2 percent to universities and community colleges — a boost to colleges and universities still trying to get back on track after the impasse. To address students fleeing Illinois, the budget also includes a new $25 million tuition grant which will provide additional tuition assistance.

In a campaign email sent shortly after the budget was signed, the Rauner campaign touted “major accomplishments” that came out of months of negotiations, including no tax increases, saving $1 billion in spending, reducing the state’s pension liability, rebuilding the Quincy Veterans’ Home, historic education funding, more state troopers and funding to combat the opioid crisis.

Democrat J.B. Pritzker’s campaign, instead, lambasted the governor for “finally agreeing to sign his name on a budget crafted by the General Assembly.”

“It shouldn’t take legislative leaders sidelining the governor and the threat of re-election to get a budget done,” Pritzker spokeswoman Galia Slayen said in a statement. “It’s abundantly clear Illinois can’t afford another four years of Bruce Rauner.”