The European Parliament has voted to open up the EU services sector to cross-border competition.
Eurosceptics, Greens and the hard left voted against the directive
MEPs approved the services directive by 391 votes to 213 - but only after watering it down to protect jobs in richer member states.
They rejected a proposal that would have enabled companies to provide services abroad under the regulations of their home country.
The directive will now be discussed by member states at a summit in March.
Internal Market commissioner Charlie McCreevy said the vote represented "a real advance, a step that no-one would have believed possible just 12 months ago".
However, BBC Europe Editor Mark Mardell says the parliament's vote is not as overwhelming as the Commission and some others wanted.
The two main groups in the parliament paved the way for the directive's successful first reading by negotiating a diluted, compromise text last week.
The compromise disappointed some supporters of the directive, including keen free marketeers and a number of MEPs from former communist member states.
HAVE YOUR SAY
Competition and deregulation will benefit us all... A rare good day for the EU
It is nonsense, irrational liberalism aimed at sabotaging European unity once and for all
At the same time, it reconciled some left-wingers to a directive they viewed with suspicion.
"We have turned this directive upside down. We have managed to focus on the social protection of our citizens and our member states," said German Socialist Evelyne Gebhardt.
About 70 rebels in both of the two main political groups - the centre-right European People's Party (EPP) and the Party of European Socialists (PSE) - appear to have abstained or voted against the directive - along with the hard left, Greens and Eurosceptics.
Business leaders have said the compromise will fail to bring the benefits envisaged by the European Commission - the creation of 600,000 jobs and an increase of 1% to 3% in the EU's economic output.
But the European Trade Union Confederation hailed it as a "real victory for European workers".
Experts say the controversial "country of origin principle" - which would have allowed service providers to remain governed by their own country's regulations wherever they were operating - is unlikely to be reinstated by national governments.
Critics said the measure would have allowed companies based in countries with weak regulations and low standards of safety and environmental protection to undercut rivals in countries with higher standards.
The compromise also:
- excludes a number of areas from the scope of the directive
- lists legitimate reasons for a government to restrict the activities of a foreign service provider
Exempted areas include broadcasting, postal services, audiovisual services, temporary employment agencies, legal services, social services, public transport and gambling - and also public, but not private, health.
But services "of general public interest" such as water, sewage and waste management, will be covered by the directive.
The list of legitimate grounds for restricting foreign companies includes such things as national security, public health and protecting the environment. It does not include consumer protection or social policy.
The directive was proposed by the Commission in order to extend Europe's single market to the services sector, which accounts for half of EU GDP and two-thirds of jobs.
Some supporters say that even in its watered-down form it cuts red tape and removes important barriers for service providers operating in other countries.