Germany’s Social Democrats (SDP) have voted for coalition negotiations with Chancellor Angela Merkel’s conservatives, their former coalition partners.
Earlier this month the two groupings agreed a blueprint for formal talks.
Mrs Merkel’s centre-right CDU and its Bavarian CSU ally have been unable to form a government since September’s inconclusive election.
The far-right Alternative for Germany (AfD) won 94 seats in parliament.
Initially the SPD ruled out governing with Mrs Merkel in charge again. But leader Martin Schulz changed his mind after CDU/CSU coalition talks with the liberal Free Democrats (FDP) and Greens broke down.
In preparatory talks earlier this month, the parties overcame key sticking points on issues such as migration.
Merkel’s sigh of relief
Jenny Hill in Berlin
It’s fair to assume Angela Merkel permitted herself a sigh of relief this evening.
Nevertheless the poker face was on for the cameras as she gave a brief statement welcoming the Social Democrats’ decision to approve formal coalition talks. This is her last realistic shot at forming a government and avoiding fresh elections.
It is far from a done deal. Many Social Democrats blame Mrs Merkel for a poor election result in September and there is still significant opposition within the party to another four years as her junior coalition partner.
If and when talks produce a formal agreement, all 440,000 members will be asked – via a postal ballot – to approve the deal. Mrs Merkel isn’t out of the woods just yet. But she is a step closer to delivering the government, the stability she promised.
They agreed to limit asylum-seeker arrivals to about 200,000 annually and may also cap at 1,000 a month the number of migrants who will be allowed to join relatives living in Germany.
Afterwards Mrs Merkel and Mr Schulz said they were optimistic a new “grand coalition” could be formed and spoke of a “fresh start” for Germany.
Both stressed the need to ensure Germany’s “social cohesion” amid tensions over the influx of asylum seekers.
German official figures show that 280,000 asylum seekers arrived in 2016, a drop of more than 600,000 on the total for 2015. Arrivals fell after EU countries and Turkey tightened border controls.
However, the huge number of 2015 arrivals – many of them Syrians, Iraqis and Afghans fleeing war – created a major integration problem for German authorities.