US President Joe Biden has told Congress that Vladimir Putin badly misjudged how the West would hit back once he invaded Ukraine.
In a primetime speech, Mr Biden vowed “an unwavering resolve that freedom will always triumph over tyranny”.
Democrats and Republicans reacted to Mr Biden’s appeal to show support for Ukraine by rising in unison to applaud.
His State of the Union address came as pandemic-weary Americans grapple with galloping inflation.
In an hour-long address to lawmakers on Tuesday night, the Democratic president said: “Putin’s war was premeditated and unprovoked. He rejected repeated efforts at diplomacy.
“He thought the West and Nato wouldn’t respond. And he thought he could divide us here at home.”
Biden – whose chaotic withdrawal last year from Afghanistan damaged his popularity among Americans – added: “Putin was wrong. We were ready.”
He announced that the US would ban Russian aircraft from American airspace, following similar bans by Canadian and European authorities.
Although the US jobless rate has sunk to 4%, inflation has hit a 40-year high.
The president sought on Tuesday night to empathise with hard-pressed working families, saying: “I get it.”
He promised a plan for “building a better America”.
Mr Biden argued the best way to counter rocketing consumer prices was to boost domestic production of cars and semiconductors and rebuild the nation’s roads and bridges.
Opinion polls show Americans are also unhappy with Mr Biden’s handling of the coronavirus pandemic.
But on Tuesday, members of Congress who attended the speech were not required to wear masks for the first time in months.
Mr Biden said: “Last year Covid-19 kept us apart. This year we are finally together again.”