Mr Biden delivered the remark off-the-cuff in response to a reporter’s question at the White House.
It is the first time he has used such language to condemn President Putin, and the White House later said he was “speaking from his heart”.
The Kremlin, however, said it was “unforgiveable rhetoric”.
“We believe such rhetoric to be unacceptable and unforgivable on the part of the head of a state, whose bombs have killed hundreds of thousands of people around the world,” spokesman Dmitry Peskov told Russian state news agency Tass.
The exchange in Washington happened Wednesday when a reporter asked the US president: “Mr President, after everything we have seen, are you ready to call Putin a war criminal?”
The President replied “no” before being challenged, and then changed his reply: “Did you ask me whether I would tell ….? Oh, I think he is a war criminal.”
White House Press Secretary Jen Psaki later said the president had been speaking from his heart after seeing “barbaric” images of the violence in Ukraine, rather than making any official declaration.
She noted that there was a separate legal process, run by the State Department, to determine war crimes – and that was ongoing separately.
The president’s official Twitter account posted: “Putin is inflicting appalling devastation and horror on Ukraine – bombing apartment buildings and maternity wards… these are atrocities. It is an outrage to the world.”