The agreement will put an end to annual haggling over catch quotas by EU ministers in Brussels, widely blamed for putting short-term economic interests above the long-term health of Europe's fish stocks.
Officials said a deal to follow scientific advice more closely when setting quotas in the future could increase EU fish stocks by up to 15 million metric tons (16.5 million tons) by the end of the decade.
The reform will also see a massive reduction in the wasteful practice known as discarding, which sees European fishermen throw almost 2 million metric tons of unwanted fish back into the sea each year - often dead or dying - as they seek to fill strict quotas with the most valuable species.
In a statement after the deal, British liberal MEP and head of the European Parliament's "Fish for the Future" group Chris Davies described it as a major step in promoting sustainable fishing.
"Our treatment of Europe's seas has been a disgrace. But we have learnt lessons. Across Europe there is a strong desire now to listen to the scientists, rebuild fish stocks, cut discards, and give our fishing industry a better future," he said.
The bloc's roughly 1 billion euro-per-year ($1.30 billion) common fisheries policy has been blamed for driving decades of over-fishing, with generous subsidies leading to a massive over capacity in the fishing fleet.
As a result, the Commission estimates that 75 percent of European fish stocks are currently over-fished, compared with 25 percent worldwide.
As part of the deal, EU fishing nations will have to reduce the size of their fleets to reflect their overall quotas or face the loss of some subsidies.
The deal must now be rubber-stamped by EU governments and the full European Parliament before entering force next year, but the details are unlikely to change.
Europe had the third-highest fish catches globally behind China and Indonesia in 2010, the most recent data from the U.N. Food and Agriculture Organization showed.
Europe's top fishing nations are Denmark, Spain, Britain and France, which together account for about half of all EU catches. ($1 = 0.7712 euros)