The UK will accept up to 20,000 refugees from Syria over the next five years, David Cameron has told MPs.
The prime minister said the UK had a "moral responsibility" to those living in camps bordering Syria while doing all it can to end the conflict there.
Vulnerable children and orphans would be prioritised in what would be a "national effort", Mr Cameron said.
But Labour said the 20,000 figure was inadequate and secured an emergency Commons debate on Tuesday.
Commons Speaker John Bercow agreed to a Labour request for a three-hour debate about the wider crisis in Europe, with shadow home secretary Yvette Cooper urging the prime minister to reconsider his response.
Ms Cooper insisted Britain must also help refugees who have made it to Europe as well as Mr Cameron's current proposal to take more from camps surrounding Syria.
In his two hour statement to Parliament, Mr Cameron also revealed that two British-born nationals believed to planning terrorist attacks on the UK were killed in an RAF drone strike in Syria last month.
Earlier on Monday, France announced that it would take in 24,000 refugees over the next two years.
Mr 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.
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.
People brought to Britain under VPR have been granted Humanitarian Protection, a status normally used for people who "don't qualify for asylum" but would be at "real risk of suffering serious harm" in their home country.
They can stay for five years, have the right to work and access public funds. After five years they can apply to settle in the UK.
Mr Cameron told MPs many of those to be given sanctuary would be children, describing it as the "modern equivalent of the Kinder transport" during World War Two.
The UN High Commissioner for Refugees would be responsible for identifying those most in need, with all those considered for resettlement to be subject to security checks.
The government, he said, would work with the devolved administrations in Scotland, Wales and Northern Ireland and councils in England to ensure the maximum capacity was available and the commitment could be "properly delivered on the ground".
"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," Mr Cameron said.
Analysis by BBC Political Correspondent Eleanor Garnier
It sounds like a big number but the 20,000 will be spread over five years. Compare that to France, which is taking 24,000 refugees over the next two years or Germany, where about 18,000 people arrived over the weekend alone.
The Green Party's Caroline Lucas said Mr Cameron's commitment "falls pitifully short of what's needed" and the Archbishop of Canterbury Justin Welby called it a "very slim response".
Given the public reaction over the past few days, I suspect the criticism won't stop there.
Coverage of refugee numbers is likely to be crowded out by Mr Cameron's other big announcement - that two British fighters with so-called Islamic State were killed by an RAF drone in Syria in an act of "self-defence."
With MPs returning today from their summer recess, this was the first chance the prime minister had to update Parliament on military action in Syria.
But Downing Street will have been well aware that it could shift media focus from the refugee and migrant crisis.
The scheme will be paid for in the first year from the overseas aid budget. After that, Mr Cameron said the government would have consider, in co-operation with local councils, how it would be financed.
The PM defended his response to the migrant crisis - which has been criticised in recent days - insisting the UK was giving £1bn in humanitarian aid to Syria and that by accepting refugees directly from camps it was discouraging people from taking the "potentially lethal" crossing across the Mediterranean.
Tory MPs welcomed the move and although Labour leader Harriet Harman said the government was doing the "right thing" she said there was an urgent need for action now and questioned whether there was scope to accept more than 4,000 this year.
"Is being British to be narrow, inward looking, fearful of the outside world, or is it about being strong and confident and proud to reach out to those seeking refuge on our shores? It must be the latter."
She also called on the government to reconsider its refusal to accept any refugees currently in southern and central Europe.
The SNP's Westminster leader Angus Robertson said it was "appalling" that only 216 refugees had been given sanctuary so far under the VPR scheme while veteran Labour MP Sir Gerald Kaufman said the UK's efforts stood in stark contrast to that of Germany, which had effectively accepted 10,000 refugees in a single day.
Save The Children urged the government to come to the aid of the 3,000 or so unaccompanied children who had travelled to Europe, saying it would continue "a proud British tradition of giving lone children a second chance in Britain".
But UKIP leader Nigel Farage said Syrian refugees should be considered as part of the UK's annual asylum process and he would be seeking assurances that no-one given refuge posed any threat to UK security.