The government's change of heart is a victory for Alf Dubs, an 83-year-old member of Britain's House of Lords who argued that the country should be more compassionate, citing his own story of fleeing the Nazis as a child in 1939.
Around 95,000 unaccompanied children applied for asylum in Europe last year, a fourfold increase on 2014, according to figures published by the Bureau for Investigative Journalism last month.
"We are going to do more for children who were already registered in Europe before the EU-Turkey deal," Cameron said in the House of Commons.
"But we must stick to the principle that we shouldn't be encouraging people to make that perilous journey."
More From This Section
Cameron's announcement was seen as a bid to head off probable defeat in a parliamentary vote next week on a legislative amendment tabled by Dubs, of the main opposition Labour party.
"When you use the word immigrants and refugees, it's not always popular with some people. I'm very sad about that, but certainly when we talk about child refugees, people responded," Dubs said.
"As a country, we have a good humanitarian tradition which has been somewhat lacking in the recent past and I think the public felt we should be doing this."
The government has not said how many children will be allowed to come to Britain, saying it needs to talk to local authorities about how many they can cope with.
Britain has not joined EU schemes for the relocation and resettlement of migrants from Syria, where a five-year conflict has left around 270,000 people dead.
Cameron's government believes it is best to offer help to refugees who have fled to camps in neighbouring countries like Jordan and Lebanon rather than encouraging them to take the risk of travelling to Europe.