"We've got to make sure we give them the weapons, the economic support, the moral support, the diplomatic support, but crucially, that military support that can make a difference."
Cameron, the former british prime minister, was in Washington for his first official visit since being appointed foreign secretary.
After meeting with US Secretary of State Antony Blinken later in the day, cameron emphasized the need to assist "Ukraine in every way we can to resist (Russian President Vladimir) Putin's illegal invasion."
Even though Ukraine's counter-offensive has mostly failed to penetrate Russian lines, he says there has been "progress."
The offensive has put into doubt the West's decision to continue providing enormous funding to Ukraine.
"If you stand back and look at the overall picture of what's happening between ukraine and Russia, it is a massive defeat for Putin," he went on to say.
The US Senate vetoed a white house proposal for $106 billion in emergency aid, principally for ukraine and Israel, on Wednesday.
President Joe Biden had lobbied senators to accept the funding, saying that Putin would not stop with victory in ukraine and may potentially strike a NATO member.
"We should pass this money on to the Ukrainians," cameron remarked. "We should back them and make sure that it's Putin that loses because if that money doesn't get voted through, there are only two people that will be smiling."
Putin is one of them, and "the other is Xi jinping in Beijing," cameron added. "And I don't know about you, but I don't want to give either of those people a christmas present."