Euro MPs have voted overwhelmingly to cut the cost of texting and using the internet on mobiles abroad.
The cap for a "roaming" text will fall to 11 euro cents (10p; 14 US cents), from about 29 cents on average today.
The EU-wide caps, excluding VAT, will take effect in July. They cover text messages and data roaming services, such as checking e-mails while abroad.
The current price cap of 46 euro cents per minute for an outgoing voice call will also fall to 43 cents in July.
The legislation was passed by 646 votes in favour and 22 against. It has already been approved by EU telecoms ministers.
It is aimed at preventing "bill shock" - the nasty surprise many holidaymakers get when they return home and see how much they were charged for using their mobile phone abroad.
The BBC's Dominic Hughes in Strasbourg says one customer was hit with a bill of more than 46,000 euros (£41,000; $60,000) for downloading a single episode of a television show.
The cap on voice calls received abroad will fall from 22 cents today to 19 cents in July and 11 cents by July 2011.
In the first phase of the EU's mobile roaming legislation, the cost of voice calls was cut from 1 July 2007. The average cost of a roaming call before then was 1.15 euros per minute.
At the time phone companies were told that legislation on texting and downloading data would follow unless they lowered costs voluntarily.
Yet there were some warnings on Wednesday that mobile phone firms might compensate by increasing their profits from domestic users - who are likely to be less well-off.
"The danger is this could turn into a vote where the mobile firms are encouraged to steal from the poor in order to subsidise the rich," Conservative MEP Syed Kamall told the BBC.
The idea is not to fix an EU-wide price, but to set a cap below which telecoms firms can compete by offering lower prices while still earning a reasonable return.
The cost of data roaming services is also coming down. These include downloading and sending e-mails abroad from mobile phones.
The maximum from 1 July is set at 1 euro per megabyte, compared with an average of 1.68 euros today. It will fall to 50 euro cents by July 2011.
The price caps are for the rates that the foreign "host" operator charges the customer's home operator.
'Young people will be happy'
The initial proposals to cap data roaming charges were made by EU Telecommunications Commissioner Viviane Reding.
Last November the package of measures won the backing of EU telecoms ministers.
According to Commissioner Reding, traffic jumped 30-35% on voice calls after the EU cut the roaming charges by 50-60%.
"We want finally to get rid of the punishment on your telephone bill when you are crossing a border," she told the BBC's Chris Mason.
"You should be welcome when you cross a border and communicate freely without feeling the surcharge on your bill, and that is why the decision of today for the European citizens is a very important one."
She said the cost of sending text messages would drop by 60%. "So I believe most of the young people will be happy, because when they are going outside their country of origin they are the big text message users."
GSMA, the global trade group for the mobile industry, criticised the MEPs' vote on Wednesday.
"Price regulation is the most intrusive form of market intervention and we regret that EU legislators have decided to extend the duration and scope of the Roaming Regulation, even as they recognise that price regulation of roaming services should be 'exceptional and temporary'," a GSMA statement said.
"We believe that detailed price regulation of the roaming market is not the way forward," said Martin Whitehead, director of GSMA Europe. "Competition has driven down the prices of mobile services by 34.5% over the last five years in Europe."