Ukrainian troops beat back fresh attacks by pro-Russia militants on a crucial rail hub Tuesday, part of recent heavy fighting that is sapping the Ukrainian administration of options and finances as it works to fend off a wider Russian-supported onslaught.

U.S. and European leaders threatened new sanctions in the wake of a rebel rocket attack that killed dozens of Ukrainian civilians over the weekend, but Russian President Vladimir Putin appeared ready to shrug off any new measures. On Tuesday, he continued to blame Kiev for the fighting and for “gunning down civilians in cold blood.”

The Kremlin denies giving support to pro-Russia rebels in eastern Ukraine or sending Russian troops, which Kiev said on Tuesday numbered as many as 15,000. Kiev and Western officials say a fresh infusion of Russian armor in the past two weeks has been feeding the latest offensive against Ukrainian troops, who last week fell back from a long-contested airport outside the eastern city of Donetsk and are now in danger of encirclement at a rail hub in the provincial city of Debaltseve.

Ukraine’s army has mostly held its own along other sectors of a long north-south front but is constrained from mounting a serious counteroffensive that Ukrainian and Western officials fear could trigger an even larger Russian military response.

President Petro Poroshenko’s government, meanwhile, will run out of money without fresh multibillion-dollar injections from the International Monetary Fund and other official Western sources. Western donors are prodding Mr. Poroshenko to show his creditworthiness by more aggressively rooting out government corruption—an arduous task, Ukrainian officials say, as the country fights a war.