She said Germany would speed up asylum procedures and build extra housing, having pledged to spend €6bn (£4.4bn).
But she added that Germany could not solve the crisis on its own and urged all EU states to take in refugees.
About 20,000 migrants are thought to have entered Germany over the weekend and 11,000 are expected on Monday.
Mrs Merkel thanked volunteers who had helped and welcomed arriving migrants, saying they had "painted a picture of Germany which can make us proud of our country".
Those migrants who need protection would receive it, Mrs Merkel said, before adding: "Those who stand no chance of getting asylum will have to return to their homes swiftly."
She said Germany was "a country willing to take people in" but that it was "time for the European Union to pull its weight".
"We will only manage to cope with these challenges if we rely on European solidarity," she told reporters at a joint news conference with Vice Chancellor Sigmar Gabriel.
She said Germany - which expects 800,000 asylum requests this year - could face costs of €10bn (£7.3bn) next year because of the influx.
Meanwhile, French President Francois Hollande has announced that France is ready to take in 24,000 refugees to help deal with the crisis.
Mr Hollande said he and Mrs Merkel wanted the EU to back a plan under which each country would be obliged to take its fair share of migrants.
The flow of migrants across Europe showed no sign of easing on Monday, with crowds reported to be streaming across Hungary's border with Serbia.