The move, mirroring EU efforts to oblige member states to accept more migrants, is aimed at relieving Austria's overcrowded main refugee centre at Traiskirchen, and comes into effect on October 1.
It was put forward by Chancellor Werner Faymann's Social Democrats and the centre-right People's Party, which form Austria's governing coalition, and votes from the Greens gave it the necessary two-thirds majority.
The far-right Freedom Party, which wants to restrict the number of migrants entering and which is currently topping national opinion polls with around 30 percent of the vote, opposed the move.
In recent months Austria has become a major transit country for tens of thousands of migrants entering from Hungary — having travelled up the western Balkans — bound for northern Europe, in particular Germany.
But 8.5-million-strong Austria also expects around 80,000 asylum claims this year, putting it high compared to other European Union countries on a per capita basis, and Vienna has been a major proponent of EU quotas.