RailcardsBusiness

No tickets in your basket.

Why not plan a trip?

My Bookings
Loading...
Loading...
Renfe
Renfe Avlo

Compare prices from over 270 rail and coach companies in Europe

Icon of trainline-phone-tickets.svg

Buy your tickets with us and easily find them on your phone

Icon of trainline-safe-payments.svg

Safely pay with PayPal, Visa and all international payment cards

Looking for the cheapest date to travel?

Within 7 days

Outbound from

Within 1 month

Outbound from

Within 3 months

Outbound from
Low prices found by our customers
Each fare is the lowest adult economy ticket fare found by our customers on Trainline. Fares booked further in advance than the dates displayed may be cheaper. Prices are updated daily, subject to change and indicative of price last update. Limited availability. Discount cards and coach journeys excluded, prices exclusive of booking fee.

What customers say about Trainline

Read real reviews from real users

Plan your journey from Barcelona to Milan

Considering a trip to Milan and need more information on how to take the train from Barcelona to Milan? Start your search with us today!

Usually, the train from Barcelona to Milan takes around 19 hours 36 minutes. Every day, there are around 5 trains running on this popular route.

There will be 2 changes on your journey from Barcelona to Milan, as there are no direct trains.

From Barcelona to Milan, tickets start from just £126.63. Booking tickets in advance can be cheaper than buying on the day of travel.

Use our Journey Planner to pick the dates and times you want to travel, and we’ll give you all the options.

Trains to Milan from Barcelona

It takes an average of 19h 36m to travel from Barcelona to Milan by train, over a distance of around 451 miles (726 km). There are normally 5 trains per day travelling from Barcelona to Milan and tickets for this journey start from £126.63 when you book in advance.

First train

09:26

Last train

16:31

Departure stationBarcelona
Arrival stationMilan
Journey time

From 12h 27m

Distance

451 miles (726 km)

Frequency

5 trains per day

Changes

2 changes

Price

From £126.63

Train and bus operators

ALSA, BlaBlaCar Bus, Flixbus, Itabus

What do people frequently ask about the train journey from Barcelona to Milan?

Want to know more about your journey from Barcelona to Milan? We've compiled some of the most frequently asked questions by our customers to help you plan your journey.

How do I get from Barcelona to Milan?

You can travel from Barcelona to Milan by train in about 19 hours and 36 minutes. With around 5 trains running each day, taking the train is easy. If you’re looking for other options, you can also catch the bus from Barcelona to Milan. Find out more in our Journey Planner.

How long is the train journey from Barcelona to Milan?

On average, the train journey from Barcelona to Milan takes around 19 hours and 36 minutes, with 5 trains per day. The duration may vary slightly depending on the specific train and any potential delays. Use our Journey Planner to check out more information.

How much is the train from Barcelona to Milan?

Train tickets from Barcelona to Milan start from as little as £126.63, depending on the time of booking, class of service and type of train. Booking in advance often results in cheaper prices.

What is the fastest train from Barcelona to Milan?

The fastest trains from Barcelona to Milan can cover the distance of 451 miles (726 km) in as little as 12 hours and 27 minutes.

What are the train times from Barcelona to Milan?

Check out the next trains departing from Barcelona to Milan for Tuesday 21st July 2026. For the full train timetable/schedule, or to search for a later time or date, click here.
DepartsArrivesDuration
08:2620:5312h 27m, 2 changes
14:1712:1521h 58m, 4 changes
15:2412:5321h 29m, 2 changes
15:3112:1520h 44m, 6 changes
15:3112:5321h 22m, 3 changes

How do I find cheap train tickets from Barcelona to Milan?

If you’re planning a trip to Europe soon, our Trainline team of experts have put together some tips to help you find cheap tickets. Booking on the day in Europe is usually more expensive and costs can vary depending on the time of day, route or travel class.

1. Book in advance

The price of train tickets from Barcelona to Milan starts at £126.63§ one-way for a Standard Class ticket if you book in advance. Most train companies across Europe release their tickets around three to six months ahead of time, so if you know the dates you want to travel, you may be able to find cheaper tickets.

2. Be flexible with your travel times

If you can, consider travelling outside of 'peak hours' (generally between 06:00 - 10:00 and 15:00 - 19:00 on weekdays) as many train companies increase their ticket prices during these commuter times.

3. Buy a rail pass

If you're visiting multiple locations on your trip, buying a rail pass can be cheaper than buying individual tickets. We're official retailers of Interrail Passes that are valid for travel within one country or multiple countries across Europe.

4. Choose a slower or connecting train

On some busier routes, you might have the option to take a slower or connecting train. It may take longer than some high-speed or direct services, but if you have some extra time on your hands, you might find a cheaper fare.

5. Look out for train ticket sales and discounts

Many train companies in Europe will often run sales on tickets throughout the year or offer discounts to senior/youth/group travellers, so keep an eye out!

6. Take a night train

Save on accommodation and use the night to travel by sleeper train to your next destination.

For specific information about how to get your hands on cheap tickets, check out our European train tickets hub.

§Some train companies may not offer any Advance ticket types or cheaper deals for early bookings. On rare occasions, train companies may choose to release special offers closer to the date on last-minute or late-release tickets. This is dependent on the individual train operating company you travel with.

Looking for more ideas?

Europe’s leading train and coach app

We help customers across Europe make more than 172,000 smarter journeys every day.