Interior Minister Hans-Peter Friedrich said Berlin would grant asylum to 3,000 Syrians from June at the latest, followed by another 2,000 later this year in response to an "increasingly difficult" situation.
The offer would bring to about 13,000 the number of Syrian refugees taken in by Germany since the start of 2012.
"We want to take quick action," Friedrich told reporters.
He said a German delegation would soon tour refugee camps in countries neighbouring Syria to choose candidates among those who have fled the two-year-old war.
He said families with several children and minors living alone in the camps would be given priority, adding that Christians would likely also be given preferential treatment because "they are under particular threat of persecution."
Refugees with relatives already living in Germany would also have priority, he added.
Friedrich said Germany had already taken in about 8,000 Syrian refugees in the last 14 months and expressed hope that other European Union countries would follow suit.
"I hope that we will be the icebreakers," he said, adding that Europe's top economy would solicit EU assistance to cover the cost of a fresh influx of refugees.
EU Home Affairs Commissioner Cecilia Malmstrom welcomed Germany's move, calling it "a striking example of solidarity in a moment when Syrian people are suffering the consequences of a devastating situation" and urging other member states to help.
The United Nations says the conflict between Syrian President Bashar al-Assad's regime and rebels fighting to overthrow him has killed more than 70,000 people and forced more than one million to flee to neighbouring countries.
Humanitarian agencies last week pleaded with governments to make good on pledges of aid for the refugees, saying they were swamped by demand.