A man who identified himself as a small-business owner said the Prime Minister had been "humiliated" when he tried to negotiate restrictions on immigration with his fellow EU leaders this year.
Cameron repeatedly tried to steer the conversation away from immigration and back to pounds and pence, citing the "extraordinary consensus" of experts who say Brexit could send the country into an economic tailspin. Immigration "is a challenge," he said. "But it's not a challenge we should meet by damaging our economy."
The Prime Minister's appearance came against a backdrop of tightening polls, which now show a dead heat ahead of the June 23 vote. As recently as two weeks ago, they had measured a sizable advantage for the "remain" side.
But the pro-Brexit campaign's unrelenting focus on immigration appears to be winning over voters who worry that the country cannot continue to accept mass arrivals from Eastern Europe under the EU's free-movement laws.
Cameron was pitted against Nigel Farage, leader of the UK Independence Party, an anti-EU movement that was the third-highest vote-getter in last year's national elections. The men did not debate head to head but instead in back-to-back appearances on the British network ITV. The broadcast was one in a series of showdowns planned before the vote.
Farage, who is known for his bombastic anti-immigration rhetoric, was testy in the face of questions from voters who suggested he was demonising newcomers for the sake of political gain.
He doubled down on his assertion that migrants arriving in Europe from the Middle East represent a grave security threat, and he described the EU as a failed endeavour that Britain must abandon.
"I want us to get back our independence," he said.
Earlier, a visibly irritated Cameron took the unusual step of calling a news conference in which he upbraided members of his own government for misrepresenting the facts of the EU debate.
The Prime Minister cited in particular claims by the Brexit campaign that Britain will be on the hook for future euro-zone bailouts and that the country will have no chance to veto its inclusion in a hypothetical EU-wide army. Both assertions, he said, are untrue.
In reply, two senior members of Cameron's Government - Michael Gove and Boris Johnson - issued a statement challenging the Prime Minister to a head-to-head debate.
I want us to get back our independence
Cameron has been unwilling to debate any of his fellow Conservatives before the referendum so as not to reinforce the appearance of a Tory civil war. Hence the showdown with Farage.
But the reality of bitter Conservative infighting has been impossible to avoid. Tory MPs have spoken openly of seeking to depose Cameron after the vote and to install an anti-EU figure in his place. Johnson, the populist former Mayor of London, is seen as the most likely choice.
A win for "remain" would probably halt the momentum behind any coup plot. But if voters defy Cameron's call to keep Britain in the EU, it could cost him his job.
Asked about the possibility, Cameron said that the vote is "not about my future. It's about the country's future."