WASHINGTON (CNN) — The battle over Obamacare took a dramatic turn Tuesday with a federal appeals court rejecting subsidies paid by the government to millions of new enrollees.

In a 2-1 ruling, a three-judge panel found the federal money that helped people afford health insurance only could go to those who signed up through exchanges run by states.

That’s what the law specified, the ruling said, meaning those who signed up through the federal government aren’t eligible for the subsidies that helped them afford coverage.

Only 16 states and the District of Columbia set up their own exchanges, meaning that most of the millions who signed up for subsidized health coverage overall under Obamacare could be affected.

President Barack Obama’s administration is expected to appeal the decision to the full circuit of judges on the court, but it’s all likely to wind up at the Supreme Court in the end.

The law remains unchanged and the subsidized policies are unaffected until the legal case plays out.

However, the potential long-term impact is huge.

If the final result backs the appeals decision, the result would wipe out subsidies for millions and undermine a key component of Obamacare’s requirement that all Americans obtain health coverage.

The easiest fix — changing the law to specify that it allows subsidies for coverage purchased through the federal government as well as state exchanges — would mean reopening the debate over the 2010 Affordable Care Act that passed with zero Republican support.

Republicans now control the House and are expected to make gains in the November election, perhaps also gaining a majority in the Senate.

That means Obama and Democrats have no chance of getting Congress to approve needed changes in the law despised by the political right.