EU Commission chief Jean-Claude Juncker said it was the EU's biggest deal to date and, at a time of trade tensions between the US and China, showed that "we stand for rules-based trade".
Brazil's President Jair Bolsonaro said it was "historic" and "one of the most important trade deals of all time".
Mercosur consists of Argentina, Brazil, Uruguay and Paraguay.
Venezuela is also a member but it was suspended in 2016 for failing to meet the group's basic standards.
The deal aims to cut or remove trade tariffs, making imported products cheaper for consumers while also boosting exports for companies on both sides.
It is set to create a market for goods and services covering nearly 800 million consumers, making it the largest in the world in terms of population.
The two parties began negotiating in 1999 but talks accelerated after US President Donald Trump's election in 2016. As a result EU-US talks were frozen.
The EU has also concluded trade agreements with Canada, Mexico and Japan since Mr Trump's election.
However, the EU deal with Mercosur could see savings on tariffs that are four times as big as those made in the Japan deal, EU trade commissioner Cecilia Malmstrom said.