Cameron made the announcement in the House of Commons as part of his government's plans to resettle thousands of refugees fleeing the civil war in Syria and Islamic State (ISIS) militants as Parliament reconvened after the summer recess.
"We are proposing that Britain should resettle up to 20,000 Syrian refugees over the rest of this Parliament," he said.
"In doing so we will continue to show the world that this country is a country of extra compassion, always standing up for our values and helping those in need."
He said: "Britain will play its part alongside our other European partners but because we're not part of the EU's borderless Schengen agreement or its relocation initiative Britain is able to decide its own approach.
"We will continue with our approach of taking refugees from the camps and elsewhere in Turkey, Jordan and Lebanon. This provides refugees with a more direct and safe route to the UK rather than risking the hazardous journey to European which has tragically cost so many lives," he added.
France earlier announced that it would take in 24,000 refugees over the next two years.
