"It is absolutely right that Britain should fulfill its moral responsibility to help those refugees just as we've done so proudly throughout our history. But in doing so we must use our head and our heart by pursuing a comprehensive approach that tackles the causes of the problem as well as the consequences," Cameron said in a speech to Parliament.
That means seeking a solution to the crisis in Syria, pushing for the formation of a new unity government in Libya, busting criminal gangs involved in smuggling operations, and continuing rescue operations in the Mediterranean, the prime minister elaborated.
Cameron reaffirmed his pledge of an equivalent of $152 million in support of migrants from Syria, where the majority of migrants had arrived on European shores from.
"We are proposing that Britain should resettle up to 20,000 Syrian refugees over the rest of this Parliament," he said in an address to the legislature.
The new proposal, despite Cameron’s original pledge to admit only 1,000 migrants, comes at a time when the wave of undocumented migrants from crisis-hit countries has climbed to an unprecedented level.
Britain works with the United Nations to deliver resettlement programs and will accept "thousands" more under existing schemes, Cameron added.
"Last week, we announced a further 100 million pounds ($152 million), taking our total contribution to over 1 billion pounds," Cameron said in an address to Parliament.
Up to two-thirds of the money would go to humanitarian programs in Syria, Cameron said, with the rest going to neighboring Jordan, Turkey and Lebanon.
Cameron said Britain is the only major country in the world that spends 0.7 percent of its budget on humanitarian aid.