The 1.3 billion Swiss francs ($1.32 billion, 1.1 billion euros) will be spread over ten years and will target lower income countries in central and eastern Europe, the Swiss government said in a statement following a press conference during EU Commission President Jean-Claude Juncker's visit to Bern.
The funds are "intended to reduce economic and social disparities in Europe, which is in Switzerland's economic and political interest", it said.
Around 200 million will go towards helping to manage the current wave of migration in affected countries, while some of the money will fund professional training in order to stimulate economic growth and fight against unemployment.
Switzerland made a similar contribution to the EU over the previous decade and the extension of the programme must still be approved by parliament.
The announcement came as European Commission chief Juncker was in the Swiss capital for talks with President Doris Leuthard.
"Switzerland has shown that it is a reliable partner," Juncker told reporters after the meeting.
Asked by a journalist if he had come to the wealthy alpine nation merely to pick up a cheque, Juncker countered that his purpose in Bern was not to collect "a present".
Juncker's visit was preceded by weeks of speculation by the Swiss press that Switzerland was about to make a hefty cash contribution to the EU, but the Swiss government would neither confirm nor deny the rumours.
At Thursday's joint press conference Leuthard said the decision not to say in advance was tactical, as the government did not want to reveal its decision prior to discussions.
The meeting between Juncker and Leuthard also aimed to make progress on the creation of an institutional framework accord between Switzerland and the EU, which was intended to be completed by the end of the year.
The framework agreement aims to resolve certain institutional questions regarding Switzerland's bilateral arrangements with the EU, for example the role of EU courts in dispute resolution.
However though discussions were "productive", an agreement will not be reached this year, they said.
The decision to grant the 1.3 billion was met with mixed reactions on Thursday.
Socialist Vaud MP Roger Nordmann hailed the move as "in the interest of Switzerland", saying the 200 million destined to help countries such as Italy and Greece dealing with high numbers of refugees was "completely normal", reported Le Matin.
In contrast, the right-wing Swiss People's Party (SVP) said the move was "a scandal" because Switzerland had made this "Christmas present" without getting anything significant in return.
Switzerland's complex ties with the EU are sewn together through a mixture of bilateral deals on trade, labour, migration and other issues.
The Bern-Brussels relationship suffered a heavy blow in 2014 when Swiss voters backed a proposal calling for the re-introduction of immigrant quotas, which could have limited the number of EU citizens working in Switzerland and therefore contravened the bilateral agreement allowing free movement of people between the EU and Switzerland.
However after nearly three years of wrangling the Swiss parliament late last year approved a hugely modified version of the plan to pacify the EU, which some commentators said at the time was an affront to Switzerland's system of direct democracy.
Some Swiss politicians continue to call for an updated, simpler set of agreements governing EU ties.
In its statement the Swiss government said EU-Swiss relations had entered "a new phase" at the beginning of this year and "a positive dynamic" had been developed.