Switzerland's executive body will contribute 1.3 billion Swiss francs (1.1 billion euros) to the European Union to help lower economic inequalities faced by some EU members, notably in eastern Europe.
The Federal Council plans to allocate the funds over 10 years, mostly for training and education in eastern European countries from which many migrants into Switzerland have come in recent years.
The idea is to help lower unemployment in the countries and improve management of migration flows.
Thursday's announcement came during a visit to Bern, the Swiss capital, by EU Commission President Jean-Claude Juncker.
It follows recent tensions between the EU and Switzerland, notably over cross-border movements.
The rich Alpine country is not an EU member but has crucial trade ties with it, and has contributed similar funds previously.