There are 9 ways to get from Portbou to Milan by train, plane, train (TGV, Renfe, Trenitalia), bus, car, or train (Renfe, TGV, Trenitalia)
Select an option below to see step-by-step directions and to compare ticket prices and travel times in Rome2Rio's travel planner.
Train, train to Barcelona–El Prat Airport, fly to Milan Linate Airport
best- Take the train from Port-Bou to Gironatrain
- Take the train from Girona to Barcelona-Santstrain
- Fly from Barcelona–El Prat Airport (BCN) to Milan Linate Airport (LIN)plane BCN - LIN
6h 24m€68–214Train, train to Barcelona–El Prat Airport, fly to Milano Malpensa Airport
cheapest- Take the train from Port-Bou to Gironatrain
- Take the train from Girona to Barcelona-Santstrain
- Fly from Barcelona–El Prat Airport (BCN) to Milano Malpensa Airport (MXP)plane BCN - MXP
- Take the train from Malpensa Aeroporto T1 to Milano Porta Garibalditrain
7h 14m€46–137Train via Chambéry
- Take the train from Port-Bou to Perpignantrain Ter
- Take the train from Perpignan to Valence Tgv Rhone-Alpes Sudtrain Tgv
- Take the train from Valence Tgv Rhone-Alpes Sud to Chambery Challes Les Eauxtrain Ter
- Take the train from Chambery Challes Les Eaux to Milano Centraletrain Fr
11h 5m€118–302Train, bus via Duomo M1
- Take the train from Port-Bou to Perpignantrain Ter
- Take the bus from Perpignan to Milanbus FlixBus N740
13h 33m€73–145Drive 782.6 km
- Drive from Portbou to Milancar 782.6 km
9h 24m€124–179Train, train to Barcelona–El Prat Airport, fly to Il Caravaggio International Airport, bus
- Take the train from Port-Bou to Gironatrain
- Take the train from Girona to Barcelona-Santstrain
- Fly from Barcelona–El Prat Airport (BCN) to Il Caravaggio International Airport (BGY)plane BCN - BGY
- Take the bus from Milan Bergamo Orio al Serio Airport to Piazza Luigi di Savoiabus
7h 20m€67–236Train to Perpignan-Rivesaltes Airport, fly to Milan Linate Airport
- Take the train from Port-Bou to Perpignantrain
- Fly from Perpignan-Rivesaltes Airport (PGF) to Milan Linate Airport (LIN)plane PGF - LIN
13h 6m€150–467Train
- Take the train from Port-Bou to Montpellier Saint-Rochtrain Ter
- Take the train from Montpellier Saint-Roch to Marseille St Charlestrain Ter
- Take the train from Marseille-Saint-Charles to Nice-Villetrain
- Take the train from Ventimiglia to Milano Centraletrain Ic
13h 40m€141–395Train, bus
- Take the train from Cerbere to Perpignantrain Ter
- Take the bus from Perpignan - Bus Station to Milano, Autostazione Lampugnanobus BlaBlaCar Bus
14h 12m€57–151
Portbou to Milan by train
Questions & Answers
The cheapest way to get from Portbou to Milan is to train and fly which costs €45 - €140 and takes 7h 14m.
The fastest way to get from Portbou to Milan is to train and fly which takes 6h 24m and costs €65 - €220.
No, there is no direct train from Portbou to Milan. However, there are services departing from Port-Bou and arriving at Milano Centrale via Perpignan, Valence Tgv Rhone-Alpes Sud and Chambery Challes Les Eaux. The journey, including transfers, takes approximately 11h 5m.
The distance between Portbou and Milan is 925 km. The road distance is 782.6 km.
The best way to get from Portbou to Milan without a car is to train via Chambéry which takes 11h 5m and costs €110 - €310.
It takes approximately 6h 24m to get from Portbou to Milan, including transfers.
Portbou to Milan train services, operated by Société Nationale des Chemins de fer Français (SNCF), depart from Port-Bou station.
Portbou to Milan train services, operated by Société Nationale des Chemins de fer Français (SNCF), arrive at Perpignan station.
Yes, the driving distance between Portbou to Milan is 783 km. It takes approximately 9h 24m to drive from Portbou to Milan.
Book your Portbou to Milan train tickets online with Omio.
What companies run services between Portbou, Spain and Milan, Italy?
You can take a train from Port-Bou to Milano Centrale via Perpignan, Valence Tgv Rhone-Alpes Sud, and Chambery Challes Les Eaux in around 11h 5m.
- Website
- ryanair.com
Flights from Barcelona–El Prat Airport to Milano Malpensa Airport
- Ave. Duration
- 1h 45m
- When
- Every day
- Estimated price
- €24–65
Flights from Barcelona–El Prat Airport to Milano Malpensa Airport via Palma Mallorca
- Ave. Duration
- 4h 10m
- When
- Sunday and Friday
- Estimated price
- €24–65
Flights from Barcelona–El Prat Airport to Il Caravaggio International Airport
- Ave. Duration
- 1h 45m
- When
- Every day
- Estimated price
- €40–160
Flights from Barcelona–El Prat Airport to Il Caravaggio International Airport via Menorca
- Ave. Duration
- 3h 50m
- When
- Every day
- Estimated price
- €40–160
Flights from Barcelona–El Prat Airport to Il Caravaggio International Airport via Palma Mallorca
- Ave. Duration
- 4h 16m
- When
- Monday, Wednesday, Thursday, Friday, Saturday, and Sunday
- Estimated price
- €40–160
Flights from Barcelona–El Prat Airport to Il Caravaggio International Airport via Ibiza
- Ave. Duration
- 4h 25m
- When
- Monday, Tuesday, Wednesday, Saturday, and Sunday
- Estimated price
- €40–160
- Website
- vueling.com
Flights from Barcelona–El Prat Airport to Milano Malpensa Airport
- Ave. Duration
- 1h 41m
- When
- Every day
- Estimated price
- €20–80
- Website
- easyjet.com
Flights from Barcelona–El Prat Airport to Milan Linate Airport
- Ave. Duration
- 1h 40m
- When
- Saturday
- Estimated price
- €30–140
Flights from Barcelona–El Prat Airport to Milano Malpensa Airport
- Ave. Duration
- 1h 42m
- When
- Friday, Wednesday, Saturday, Monday, Sunday, and Tuesday
- Estimated price
- €40–85
Flights from Perpignan-Rivesaltes Airport to Milan Linate Airport via Paris Orly
- Ave. Duration
- 13h 40m
- When
- Monday to Thursday
- Estimated price
- €110–550
- Website
- ita-airways.com
Flights from Barcelona–El Prat Airport to Milan Linate Airport via Palma Mallorca
- Ave. Duration
- 3h 5m
- When
- Sunday
- Estimated price
- €90–150
Flights from Barcelona–El Prat Airport to Milan Linate Airport via Rome
- Ave. Duration
- 4h 20m
- When
- Monday to Saturday
- Estimated price
- €90–150
Flights from Perpignan-Rivesaltes Airport to Milan Linate Airport via London Stansted, Paris Charles de Gaulle
- Ave. Duration
- 8h 40m
- When
- Friday
- Estimated price
- €100–370
- Website
- flyulendo.com
Flights from Barcelona–El Prat Airport to Milano Malpensa Airport
- Ave. Duration
- 1h 50m
- When
- Every day
- Estimated price
- €17–65
- Website
- singaporeair.com
Flights from Barcelona–El Prat Airport to Milano Malpensa Airport
- Ave. Duration
- 1h 40m
- When
- Wednesday, Thursday, and Sunday
- Estimated price
- €50–120
- Website
- aerlingus.com
Flights from Perpignan-Rivesaltes Airport to Milan Linate Airport via Dublin
- Ave. Duration
- 18h 15m
- When
- Monday, Wednesday, Friday, and Sunday
- Estimated price
- €130–750
Rome2Rio's guide to Renfe Viajeros
Contact DetailsContact Details
- Phone
- +34 91 232 03 20
- Website
- renfe.com
Train from Port-Bou to Girona
- Ave. Duration
- 1h 3m
- Frequency
- Hourly
- Estimated price
- €8–13
- Website
- https://www.renfe.com/es/en
Train from Girona to Barcelona-Sants
- Ave. Duration
- 41 min
- Frequency
- Every 20 minutes
- Estimated price
- €12–18
- Website
- https://www.renfe.com/es/en
Train from Perpignan to Valence Tgv Rhone-Alpes Sud
- Ave. Duration
- 2h 52m
- Frequency
- 4 times a day
- Estimated price
- €45–70
- Website
- https://www.renfe.com/es/en
Train from Port-Bou to Girona
- Ave. Duration
- 1h 3m
- Frequency
- Hourly
- Estimated price
- €8–13
- Website
- https://www.renfe.com/es/en
Train from Girona to Barcelona-Sants
- Ave. Duration
- 41 min
- Frequency
- Every 20 minutes
- Estimated price
- €12–18
- Website
- https://www.renfe.com/es/en
Train from Port-Bou to Girona
- Ave. Duration
- 1h 3m
- Frequency
- Hourly
- Estimated price
- €8–13
- Website
- https://www.renfe.com/es/en
Train from Girona to Barcelona-Sants
- Ave. Duration
- 41 min
- Frequency
- Every 20 minutes
- Estimated price
- €12–18
- Website
- https://www.renfe.com/es/en
Train from Montpellier Saint-Roch to Marseille St Charles
- Ave. Duration
- 1h 38m
- Frequency
- 4 times a day
- Estimated price
- €22–35
- Website
- https://www.renfe.com/es/en
- Phone
- +34 900 41 00 41
- Website
- rodalies.gencat.cat
Train from Port-Bou to Girona
- Ave. Duration
- 1h 3m
- Frequency
- Hourly
- Estimated price
- €8–22
- Website
- https://rodalies.gencat.cat/en/inici/index.html
- Website
- https://rodalies.gencat.cat/ca/inici/index.html
Train from Port-Bou to Girona
- Ave. Duration
- 1h 3m
- Frequency
- Hourly
- Estimated price
- €8–22
- Website
- https://rodalies.gencat.cat/en/inici/index.html
- Website
- https://rodalies.gencat.cat/ca/inici/index.html
Train from Port-Bou to Girona
- Ave. Duration
- 1h 3m
- Frequency
- Hourly
- Estimated price
- €8–22
- Website
- https://rodalies.gencat.cat/en/inici/index.html
- Website
- https://rodalies.gencat.cat/ca/inici/index.html
Rome2Rio's guide to Renfe AVE
Contact DetailsContact Details
- Phone
- +34 91 232 03 20
- Website
- renfe.com
Train from Girona to Barcelona-Sants
- Ave. Duration
- 39 min
- Frequency
- Every 3 hours
- Estimated price
- €14–25
- Website
- https://www.renfe.com/es/en
Train from Girona to Barcelona-Sants
- Ave. Duration
- 39 min
- Frequency
- Every 3 hours
- Estimated price
- €14–25
- Website
- https://www.renfe.com/es/en
Train from Girona to Barcelona-Sants
- Ave. Duration
- 39 min
- Frequency
- Every 3 hours
- Estimated price
- €14–25
- Website
- https://www.renfe.com/es/en
- Phone
- +33 1 84 94 36 35
- Website
- track.effiliation.com
Train from Port-Bou to Perpignan
- Ave. Duration
- 58 min
- Frequency
- Hourly
- Estimated price
- €7–15
- Website
- https://track.effiliation.com/servlet/effi.redir?id_compteur=23007591&url=https%3A%2F%2Fwww.sncf-connect.com%2Fen-en%2F
Train from Valence Tgv Rhone-Alpes Sud to Chambery Challes Les Eaux
- Ave. Duration
- 1h 56m
- Frequency
- Hourly
- Estimated price
- €26–55
- Website
- https://track.effiliation.com/servlet/effi.redir?id_compteur=23007591&url=https%3A%2F%2Fwww.sncf-connect.com%2Fen-en%2F
Train from Port-Bou to Perpignan
- Ave. Duration
- 58 min
- Frequency
- Hourly
- Estimated price
- €7–15
- Website
- https://track.effiliation.com/servlet/effi.redir?id_compteur=23007591&url=https%3A%2F%2Fwww.sncf-connect.com%2Fen-en%2F
Train from Port-Bou to Perpignan
- Ave. Duration
- 58 min
- Frequency
- Hourly
- Estimated price
- €7–15
- Website
- https://track.effiliation.com/servlet/effi.redir?id_compteur=23007591&url=https%3A%2F%2Fwww.sncf-connect.com%2Fen-en%2F
Train from Port-Bou to Montpellier Saint-Roch
- Ave. Duration
- 3h 2m
- Frequency
- Every 4 hours
- Estimated price
- €35–70
- Website
- https://track.effiliation.com/servlet/effi.redir?id_compteur=23007591&url=https%3A%2F%2Fwww.sncf-connect.com%2Fen-en%2F
Train from Montpellier Saint-Roch to Marseille St Charles
- Ave. Duration
- 1h 40m
- Frequency
- Hourly
- Estimated price
- €30–60
- Website
- https://track.effiliation.com/servlet/effi.redir?id_compteur=23007591&url=https%3A%2F%2Fwww.sncf-connect.com%2Fen-en%2F
Train from Cerbere to Perpignan
- Ave. Duration
- 37 min
- Frequency
- Hourly
- Estimated price
- €7–14
- Website
- https://track.effiliation.com/servlet/effi.redir?id_compteur=23007591&url=https%3A%2F%2Fwww.sncf-connect.com%2Fen-en%2F
- Phone
- +33 4 13 94 30 50
- Website
- zou.maregionsud.fr
Train from Port-Bou to Perpignan
- Ave. Duration
- 1h
- Frequency
- 3 times a day
- Estimated price
- €11–22
- Website
- https://zou.maregionsud.fr/en/
Train from Valence Tgv Rhone-Alpes Sud to Chambery Challes Les Eaux
- Ave. Duration
- 1h 54m
- Frequency
- Every 2 hours
- Estimated price
- €40–80
- Website
- https://zou.maregionsud.fr/en/
Train from Port-Bou to Perpignan
- Ave. Duration
- 1h
- Frequency
- 3 times a day
- Estimated price
- €11–22
- Website
- https://zou.maregionsud.fr/en/
Train from Port-Bou to Perpignan
- Ave. Duration
- 1h
- Frequency
- 3 times a day
- Estimated price
- €11–22
- Website
- https://zou.maregionsud.fr/en/
Train from Port-Bou to Montpellier Saint-Roch
- Ave. Duration
- 3h 7m
- Frequency
- 3 times a day
- Estimated price
- €50–110
- Website
- https://zou.maregionsud.fr/en/
Train from Montpellier Saint-Roch to Marseille St Charles
- Ave. Duration
- 2h 5m
- Frequency
- 5 times a day
- Estimated price
- €45–90
- Website
- https://zou.maregionsud.fr/en/
Train from Marseille-Saint-Charles to Nice-Ville
- Ave. Duration
- 2h 41m
- Frequency
- Hourly
- Estimated price
- €55–120
- Website
- https://zou.maregionsud.fr/en/
Train from Cerbere to Perpignan
- Ave. Duration
- 39 min
- Frequency
- 5 times a day
- Estimated price
- €10–21
- Website
- https://zou.maregionsud.fr/en/
- Phone
- +33 1 84 94 36 35
- Website
- sncf-connect.com
Train from Perpignan to Valence Tgv Rhone-Alpes Sud
- Ave. Duration
- 2h 48m
- Frequency
- Every 2 hours
- Estimated price
- €75–130
- Website
- https://www.sncf-connect.com/en-en
Train from Marseille-Saint-Charles to Nice-Ville
- Ave. Duration
- 2h 36m
- Frequency
- Every 2 hours
- Estimated price
- €45–75
- Website
- https://www.sncf-connect.com/en-en
- Phone
- +39.06.5210550
- Website
- trenitalia.com
Train from Chambery Challes Les Eaux to Milano Centrale
- Ave. Duration
- 3h 21m
- Frequency
- 4 times a day
- Estimated price
- €40–70
- Website
- https://www.trenitalia.com/en.html
Train from Ventimiglia to Milano Centrale
- Ave. Duration
- 4h 26m
- Frequency
- Twice daily
- Estimated price
- €35–60
- Website
- https://www.trenitalia.com/en.html
- Phone
- +39 02 7249 4494
- [email protected]
- Website
- trenord.it
Train from Malpensa Aeroporto T1 to Milano Porta Garibaldi
- Ave. Duration
- 44 min
- Frequency
- Every 30 minutes
- Estimated price
- €4–6
- Website
- https://www.trenord.it/en/
- Phone
- +39 06 68475475
- Website
- trenitalia.com
Train from Ventimiglia to Milano Centrale
- Ave. Duration
- 3h 45m
- Frequency
- Hourly
- Estimated price
- €30–65
- Website
- https://www.trenitalia.com/en.html
- Phone
- +49 30 300 137 300
- [email protected]
- Website
- https://www.flixbus.fr
Bus from Perpignan to Milan
- Ave. Duration
- 11h 15m
- Frequency
- Twice daily
- Estimated price
- €65–120
- Website
- https://www.flixbus.co.uk
- [email protected]
- Website
- terravision.eu
Bus from Milan Bergamo Orio al Serio Airport to Piazza Luigi di Savoia
- Ave. Duration
- 50 min
- Frequency
- Every 30 minutes
- Estimated price
- €5–25
- Website
- https://www.terravision.eu/
- Phone
- +3 318 576 2228
- Website
- blablacar.co.uk
Bus from Perpignan - Bus Station to Milano, Autostazione Lampugnano
- Ave. Duration
- 12h 35m
- Frequency
- Twice daily
- Estimated price
- €70–130
- Website
- https://www.blablacar.co.uk/bus
- Phone
- +39 06 88 93 82 32
- Website
- itabus.it
Bus from Perpignan - Bus Station to Milano, Autostazione Lampugnano
- Ave. Duration
- 10h 55m
- Frequency
- Once daily
- Estimated price
- €50–100
- Website
- https://www.itabus.it/en/home
Want to know more about travelling around Italy
Rome2Rio's Travel Guide series provide vital information for the global traveller. Filled with useful and timely travel information, the guides answer all the hard questions - such as 'How do I buy a ticket?', 'Should I book online before I travel? ', 'How much should I expect to pay?', 'Do the trains and buses have Wifi?' - to help you get the most out of your next trip.
Related travel guides
Italy Travel Guides
Read the travel guide
Getting to Milan from the airport
Read the travel guide
Train travel in Spain: A guide to Renfe
Read the travel guide
More Questions & Answers
There are 14421+ hotels available in Milan.


















































