Cameron said in a speech to the United Jewish Israel Appeal in London that a military strike against sites in Iran would only serve to rally the Iranian people around the regime at a time when the sanctions were starting to bite.
But he warned the Iranians that if they failed to halt uranium enrichment, then “nothing is off the table”.
His intervention came as European Union foreign ministers meeting in Luxembourg agreed a host of tough new financial and trade sanctions against Iran aimed at forcing a breakthrough in stalled talks on the nuclear program.
Cameron refuted claims that the sanctions strategy was “fatally flawed”, saying they had helped to slow the nuclear program and reduced Iranian oil exports by 45%.
“Most significantly, there are signs that the Iranian people are beginning to question the regime’s strategy with even pro-regime groups protesting at the actions of the government,” Cameron said.
If Israeli Prime Minister Benjamin Netanyahu ordered a military strike, it would strengthen the Iranian regime, he claimed.
“I have said to Prime Minister Netanyahu that now is not the time for Israel to resort to military action,” Cameron said.
“Beyond the unpredictable dangers inherent in any conflict, the other reason is this: at the very moment when the regime faces unprecedented pressure and the people are on the streets; and when Iran’s only real ally in Syria is losing his grip on power, a foreign military strike is exactly the chance the regime would look for to unite his people against a foreign enemy.
“We shouldn’t give them that chance. We need the courage to give these sanctions time to work.”
Cameron added: “But let me also say this. In the long term, if Iran makes the wrong choice, nothing is off the table.
“A nuclear armed Iran is a threat to Israel. And a threat to the world. And this country will work unwaveringly to prevent that from happening.”
Iran insists its nuclear program is for purely civilian purposes, a claim Cameron described as “not remotely credible”.