The chairman of the Eurogroup, Mário Centeno, announced the deal, reached after marathon discussions in Brussels.
It comes as Spain’s prime minister said the country was close to passing the worst of its coronavirus outbreak.
Spain has Europe’s highest number of confirmed cases, with 152,446. More than 15,000 people have died.
The head of the International Monetary Fund (IMF) has warned the world is facing the worst economic crisis since the Great Depression of the 1930s.
Kristalina Georgieva said the coronavirus pandemic would turn economic growth “sharply negative” this year.
At their Brussels talks, EU ministers failed to accept a demand from France and Italy to share out the cost of the crisis by issuing so-called coronabonds.
The package finally agreed is smaller than the European Central Bank (ECB) had urged.
The ECB has said the bloc may need up to €1.5tn (£1.3tn) to tackle the crisis.
However, the French Finance Minister, Bruno Le Maire, hailed the agreement as the most important economic plan in EU history.
“Europe has decided and is ready to meet the gravity of the crisis,” he tweeted after the talks.
The main component of the rescue plan involves the European Stability Mechanism, the EU’s bailout fund, which will make €240bn available to guarantee spending by indebted countries under pressure.
The EU ministers also agreed other measures including €200bn in guarantees from the European Investment Bank and a European Commission project for national short-time working schemes.
Ministers were close to a deal on Wednesday, but the talks broke down and had to be resumed a day later, amid a dispute between Italy and the Netherlands over how to apply the recovery fund.