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."
Cameron told MPs that the suffering of the Syrian people and others trying to make it to Europe in recent weeks was "heartbreaking" and that the UK was stepping up its effort to help those displaced by the conflict.
Britain will play its part alongside our other European partners: Cameron
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.
He told MPs that the existing Vulnerable Persons Relocation Scheme, in place since early 2014, would be expanded, with an additional 20,000 people currently living in camps in Syria, Turkey and Jordan being resettled in the UK by 2020.
France earlier announced that it would take in 24,000 refugees over the next two years.