Limits on Bulgarians' and Romanians' right to work in the UK have been unveiled by Home Secretary John Reid.
The only unskilled working allowed will be in food processing and agriculture.
The countries join the EU in January and Mr Reid is keen to avoid the large influx seen from the eight ex-communist states which joined the EU in 2004.
EU rules mean Romanians and Bulgarians will be free to live in the UK, and to take any job if self-employed. Critics say the plans are unworkable.
The curbs contrast with the "open-door" policy adopted in 2004, when 15,000 migrant workers were expected to arrive each year. Instead 600,000 arrived in two years.
In a written statement to Parliament, Mr Reid said the policy had been a success because migrant workers had filled skills gaps.
But he acknowledged some schools had had to cope with a "significant rise" in pupils, while some councils had reported overcrowding in private housing.
The new policy will be reviewed annually. Mr Reid said policing it would be challenging, but those caught working illegally would face on-the-spot fines, with hefty penalties for their employers.
But shadow home secretary David Davis said allowing any EU citizen to work in the UK if they are self-employed was a "big loophole" and said there was no way of stopping "undesirables" living in the UK.
Liberal Democrat home affairs spokesman Nick Clegg questioned whether the policy was possible to police.
Both the Tories and Lib Dems raised concerns that the policy would simply push more people into working illegally.
Lobby group Migrationwatch chairman Sir Andrew Green said the curbs were "a tiny step forward", while UK Independence Party leader Nigel Farage MEP, described them as "too little too late" and unenforceable.
Ex-Labour minister Frank Field, said "the government is slowly moving to a new position" but he thought the restrictions did not go far enough.
However Labour's former Europe Minister Keith Vaz said the measures were "a real blow" to Britain's reputation as a champion of EU enlargement.
Bulgarian minister Meglena Kuneva predicted on BBC News 24 that about 36,000 people would want to move to Britain from Bulgaria.
She called the UK's previous policy "very brave and very right", adding: "It's a little a bit strange why this policy isn't kept [for Bulgaria]".
Raduta Matache, the acting Romanian ambassador to the UK, said most Romanians were more likely to look for work in Italy or Spain.
"I do believe that fears about Romanians swamping Britain are totally unfounded," she told the BBC.