There are 12 ways to get from Milan to Perth by plane, bus, train, night train, car, car train, or car ferry
Select an option below to see step-by-step directions and to compare ticket prices and travel times in Rome2Rio's travel planner.
Fly Milan Linate Airport to Edinburgh Airport, bus
best- Fly from Milan Linate Airport (LIN) to Edinburgh Airport (EDI)LIN - EDI
- Take the bus from Airport to Leonard Street
6h 19mTrain to Milano Malpensa Airport, fly to Glasgow Airport, train
cheapest- Take the train from Milano Porta Garibaldi to Malpensa Aeroporto T1
- Fly from Milano Malpensa Airport (MXP) to Glasgow Airport (GLA)MXP - GLA
- Take the train from Glasgow Queen Street to Perth
7h 7m£43–186Bus, train via London
- Take the bus from Milano, Autostazione Lampugnano to Rotterdam Central Station
- Take the train from Rotterdam Centraal to London St. Pancras Int.
- Take the train from King's Cross to Edinburgh Waverley
- Take the train from Edinburgh Waverley to Perth
26h 29m£334–614Train, night train
- Take the train from Milano Centrale to Zuerich HbEc
- Take the night train from Zürich HB to Amsterdam CentraalNj
- Take the train from Amsterdam Centraal to London St. Pancras Int.
- Take the train from King's Cross to Edinburgh Waverley
- Take the train from Edinburgh Waverley to Perth
27h 8m£405–1,030Drive, Eurotunnel
- Drive from Milan to Calais-Fréthun
- Take the car train from Calais-Fréthun to Folkestone
- Drive from Folkestone to Perth
20hBus to Il Caravaggio International Airport, fly to Edinburgh Airport, bus
- Take the bus from Piazza Luigi di Savoia to Bergamo Airport Bus Station
- Fly from Il Caravaggio International Airport (BGY) to Edinburgh Airport (EDI)BGY - EDI
- Take the bus from Airport to Leonard Street
6h 52mFly Milan Linate Airport to Glasgow Airport, train
- Fly from Milan Linate Airport (LIN) to Glasgow Airport (GLA)LIN - GLA
- Take the train from Glasgow Queen Street to Perth
8h 18m£85–235Fly Milan Linate Airport to Dundee Riverside Airport
- Fly from Milan Linate Airport (LIN) to Dundee Riverside Airport (DND)LIN - DND
8h 48m£91–380Train to Milano Malpensa Airport, fly to Edinburgh Airport, bus
- Take the train from Milano Porta Garibaldi to Malpensa Aeroporto T1
- Fly from Milano Malpensa Airport (MXP) to Edinburgh Airport (EDI)MXP - EDI
- Take the bus from Airport to Leonard Street
6h 43mBus
- Take the bus from Milano, Autostazione Lampugnano to Luxembourg, P+R Bouillon
- Take the bus from Luxembourg P+R Bouillon to London Victoria
- Take the bus from London Victoria to Park and Ride
32h 22m£93–207Bus, train
- Take the bus from Milano, Autostazione Lampugnano to Brussels-North Station
- Take the bus from Brussel Eurolines Busstation to Sheffield
- Take the train from Sheffield to Edinburgh Waverley
- Take the bus from George Street to Leonard StreetE9
34h 47mDrive, car ferry
- Drive from Milan to Calais
- Take the car ferry from Calais to Port of Dover
- Drive from Port of Dover to Perth
20h 55m£287–418
Milan to Perth by bus and train
Questions & Answers
The cheapest way to get from Milan to Perth is to train and fly which costs £40 - £190 and takes 7h 7m.
The fastest way to get from Milan to Perth is to train and fly which takes 7h 7m and costs £40 - £190.
No, there is no direct bus from Milan to Perth. However, there are services departing from Milano, Autostazione Lampugnano and arriving at South Street via Luxembourg P+R Bouillon, London Victoria and Park and Ride. The journey, including transfers, takes approximately 32h 22m.
No, there is no direct train from Milan to Perth. However, there are services departing from Milano Centrale and arriving at Perth via Zürich HB, Amsterdam Centraal, King's Cross and Edinburgh Waverley. The journey, including transfers, takes approximately 27h 8m.
The distance between Milan and Perth is 957 miles.
The best way to get from Milan to Perth without a car is to bus and train via London which takes 26h 29m and costs £330 - £650.
It takes approximately 6h 19m to get from Milan to Perth, including transfers.
Milan to Perth bus services, operated by FlixBus, depart from Milano, Autostazione Lampugnano station.
Milan to Perth train services, operated by Trenitalia EuroCity, depart from Milano Centrale station.
The best way to get from Milan to Perth is to fly which takes 8h 48m and costs £90 - £380. Alternatively, you can bus, which costs £90 - £210 and takes 32h 22m.
What companies run services between Milan, Italy and Perth, Scotland?
British Airways, Loganair, and two other airlines fly from Milan Linate Airport (LIN) to Dundee Riverside Airport (DND) 4 times a day. Alternatively, you can take a bus from Milano, Autostazione Lampugnano to South Street via Luxembourg P+R Bouillon, London Victoria, and Park and Ride in around 32h 22m.
Transport is disrupted due to the Russia-Ukraine war. Read more
- Website
- britishairways.com
Flights from Milan Linate Airport to Edinburgh Airport via London City
- Ave. Duration
- 5h 35m
- When
- Monday to Friday
- Estimated price
- £60–300
Flights from Milan Linate Airport to Glasgow Airport via London City
- Ave. Duration
- 4h 15m
- When
- Wednesday, Thursday, Friday, and Sunday
- Estimated price
- £65–320
Flights from Milan Linate Airport to Glasgow Airport via London Heathrow
- Ave. Duration
- 4h 57m
- When
- Every day
- Estimated price
- £65–320
Flights from Milan Linate Airport to Dundee Riverside Airport via London Heathrow
- Ave. Duration
- 6h 2m
- When
- Monday, Tuesday, Wednesday, Thursday, Friday, and Sunday
- Estimated price
- £80–420
Flights from Milan Linate Airport to Dundee Riverside Airport via Brussels, London Heathrow
- Ave. Duration
- 8h 15m
- When
- Monday to Friday
- Estimated price
- £80–310
- Website
- easyjet.com
Flights from Milan Linate Airport to Edinburgh Airport
- Ave. Duration
- 2h 40m
- When
- Every day
- Estimated price
- £45–170
Flights from Milano Malpensa Airport to Glasgow Airport via London Luton
- Ave. Duration
- 4h 10m
- When
- Thursday and Sunday
- Estimated price
- £35–150
Flights from Milano Malpensa Airport to Glasgow Airport via Paris Charles de Gaulle
- Ave. Duration
- 4h 22m
- When
- Monday and Thursday
- Estimated price
- £35–150
Flights from Milano Malpensa Airport to Glasgow Airport via London Gatwick
- Ave. Duration
- 5h 11m
- When
- Monday, Thursday, Friday, and Sunday
- Estimated price
- £35–150
Flights from Milan Linate Airport to Glasgow Airport via Amsterdam Schiphol
- Ave. Duration
- 5h 20m
- When
- Thursday and Friday
- Estimated price
- £95–220
Flights from Milan Linate Airport to Glasgow Airport via London Gatwick
- Ave. Duration
- 7h 5m
- When
- Monday, Tuesday, Wednesday, Thursday, Friday, and Sunday
- Estimated price
- £95–220
Flights from Milan Linate Airport to Glasgow Airport via Paris Charles de Gaulle
- Ave. Duration
- 7h 40m
- When
- Monday
- Estimated price
- £95–220
Flights from Milano Malpensa Airport to Edinburgh Airport
- Ave. Duration
- 2h 35m
- When
- Sunday
- Estimated price
- £45–150
- Website
- ryanair.com
Flights from Il Caravaggio International Airport to Edinburgh Airport
- Ave. Duration
- 2h 35m
- When
- Every day
- Estimated price
- £65–110
Flights from Il Caravaggio International Airport to Edinburgh Airport via Charleroi
- Ave. Duration
- 5h 2m
- When
- Thursday, Saturday, and Sunday
- Estimated price
- £65–110
Flights from Milano Malpensa Airport to Edinburgh Airport
- Ave. Duration
- 2h 35m
- When
- Monday
- Estimated price
- £55–140
- Website
- lufthansa.com
Flights from Milan Linate Airport to Edinburgh Airport via Frankfurt
- Ave. Duration
- 5h 2m
- When
- Monday to Saturday
- Estimated price
- £70–280
Flights from Milan Linate Airport to Glasgow Airport via Frankfurt
- Ave. Duration
- 6h 37m
- When
- Every day
- Estimated price
- £75–300
- Website
- klm.com
Flights from Milan Linate Airport to Glasgow Airport via Amsterdam Schiphol
- Ave. Duration
- 5h 6m
- When
- Every day
- Estimated price
- £55–290
- Website
- eurowings.com
Flights from Milan Linate Airport to Edinburgh Airport via Stuttgart
- Ave. Duration
- 5h 35m
- When
- Thursday
- Estimated price
- £55–200
Flights from Milano Malpensa Airport to Edinburgh Airport via Dusseldorf
- Ave. Duration
- 4h 25m
- When
- Friday
- Estimated price
- £45–160
- Website
- loganair.co.uk
Flights from Milan Linate Airport to Dundee Riverside Airport via London Heathrow
- Ave. Duration
- 6h 45m
- When
- Wednesday
- Estimated price
- £80–300
Flights from Milan Linate Airport to Dundee Riverside Airport via Brussels, London Heathrow
- Ave. Duration
- 8h 15m
- When
- Monday to Friday
- Estimated price
- £80–310
- Website
- flyulendo.com
Flights from Milano Malpensa Airport to Glasgow Airport
- Ave. Duration
- 2h 30m
- When
- Monday and Friday
- Estimated price
- £22–80
- Website
- aerlingus.com
Flights from Milan Linate Airport to Glasgow Airport via Dublin
- Ave. Duration
- 5h 15m
- When
- Every day
- Estimated price
- £45–230
- Phone
- +31 30 751 5155
- Website
- ns.nl
Train from Rotterdam Centraal to London St. Pancras Int.
- Ave. Duration
- 3h 29m
- Frequency
- 4 times a day
- Estimated price
- £210–260
- Website
- https://www.ns.nl/en
Train from Amsterdam Centraal to London St. Pancras Int.
- Ave. Duration
- 4h 17m
- Frequency
- 5 times a day
- Estimated price
- £90–280
- Website
- https://www.ns.nl/en
- Phone
- +44 345 722 5333
- customers@lner.co.uk
- Website
- lner.co.uk
Train from King's Cross to Edinburgh Waverley
- Ave. Duration
- 4h 5m
- Frequency
- Every 30 minutes
- Estimated price
- £70–160
- Website
- https://www.lner.co.uk/
Train from Edinburgh Waverley to Perth
- Ave. Duration
- 1h 17m
- Frequency
- Twice daily
- Estimated price
- £10–12
- Website
- https://www.lner.co.uk/
- Phone
- +44 344 811 0141
- Website
- scotrail.co.uk
Train from Edinburgh Waverley to Perth
- Ave. Duration
- 1h 30m
- Frequency
- Hourly
- Estimated price
- £12–24
- Website
- https://www.scotrail.co.uk/
Train from Glasgow Queen Street to Perth
- Ave. Duration
- 1h 11m
- Frequency
- Hourly
- Estimated price
- £13–23
- Website
- https://www.scotrail.co.uk/
- Phone
- +44 330 060 0500
- enquiry@sleeper.scot
- Website
- sleeper.scot
Train from Edinburgh Waverley to Perth
- Ave. Duration
- 1h 22m
- Frequency
- Twice daily
- Estimated price
- £60–80
- Website
- https://www.sleeper.scot/
- Sleeper Berth Classic
- £210–230
- Sleeper Seat
- £60–80
- Sleeper Berth Club Solo
- £230–270
- Phone
- +39 06 68475475
- ufficiogruppi@trenitalia.it
- Website
- trenitalia.com
Train from Milano Centrale to Zuerich Hb
- Ave. Duration
- 3h 17m
- Frequency
- Every 3 hours
- Estimated price
- £50–95
- Website
- https://www.trenitalia.com/en.html
- 1st Class
- £65–95
- 2nd Class
- £50–70
- Phone
- +41 848 446 688
- Website
- sbb.ch
Night train from Zürich HB to Amsterdam Centraal
- Ave. Duration
- 11h 14m
- Frequency
- Once daily
- Estimated price
- £220–400
- Website
- https://www.sbb.ch/en
- Phone
- +44 343 218 6186
- Website
- eurostar.com
Train from Amsterdam Centraal to London St. Pancras Int.
- Ave. Duration
- 4h 17m
- Frequency
- 3 times a day
- Estimated price
- £55–300
- Website
- https://www.eurostar.com/rw-en
- Phone
- +44 (0) 8443 35 35 35
- Website
- leshuttle.com
Car train from Calais-Fréthun to Folkestone
- Ave. Duration
- 35 min
- Frequency
- Hourly
- Website
- https://www.leshuttle.com/uk-en
- Phone
- +39 02 7249 4494
- my-link@trenord.it
- Website
- trenord.it
Train from Milano Porta Garibaldi to Malpensa Aeroporto T1
- Ave. Duration
- 41 min
- Frequency
- Hourly
- Estimated price
- £3–5
- Website
- https://www.trenord.it/en/
- Phone
- +39 02-72494949
- Website
- malpensaexpress.it
Train from Milano Porta Garibaldi to Malpensa Aeroporto T1
- Ave. Duration
- 41 min
- Frequency
- Hourly
- Estimated price
- £14
- Website
- https://www.malpensaexpress.it/en/
Train from Sheffield to Edinburgh Waverley
- Ave. Duration
- 3h 45m
- Frequency
- Hourly
- Estimated price
- £35–180
- Website
- https://www.crosscountrytrains.co.uk/
- Phone
- +44 (0)131 510 4007
- ride@ember.to
- Website
- ember.to
Bus from Airport to Leonard Street
- Ave. Duration
- 49 min
- Frequency
- Hourly
- Website
- https://www.ember.to/
Bus from George Street to Leonard Street
- Ave. Duration
- 1h 14m
- Frequency
- Hourly
- Website
- https://www.ember.to/
- Phone
- +49 30 300 137 300
- service@flixbus.com
- Website
- flixbus.fr
Bus from Milano, Autostazione Lampugnano to Rotterdam Central Station
- Ave. Duration
- 15h 40m
- Frequency
- 4 times a week
- Estimated price
- £45–120
- Website
- https://www.flixbus.co.uk
Bus from Milano, Autostazione Lampugnano to Luxembourg, P+R Bouillon
- Ave. Duration
- 9h 50m
- Frequency
- Twice daily
- Estimated price
- £30–75
- Website
- https://www.flixbus.co.uk
Bus from London Victoria to Park and Ride
- Ave. Duration
- 11h 15m
- Frequency
- Hourly
- Estimated price
- £30–85
- Website
- https://www.flixbus.co.uk
- Phone
- +3-389-268-0068
- Website
- blablacar.co.uk
Bus from Milano, Autostazione Lampugnano to Rotterdam Central Station
- Ave. Duration
- 15h 55m
- Frequency
- 4 times a week
- Estimated price
- £40–120
- Website
- https://www.blablacar.co.uk/bus
Bus from Milano, Autostazione Lampugnano to Luxembourg, P+R Bouillon
- Ave. Duration
- 9h 55m
- Frequency
- Once daily
- Estimated price
- £35–75
- Website
- https://www.blablacar.co.uk/bus
- info@flibco.com
- Website
- flibco.com
Bus from Piazza Luigi di Savoia to Bergamo Airport Bus Station
- Ave. Duration
- 50 min
- Frequency
- Every 30 minutes
- Estimated price
- £7–9
- Website
- https://www.flibco.com/en
- Phone
- +39 02 3008 9000
- mail@autostradale.it
- Website
- autostradale.it
Bus from Piazza Luigi di Savoia to Bergamo Airport Bus Station
- Ave. Duration
- 1h
- Frequency
- Every 30 minutes
- Estimated price
- £3–15
- Website
- https://autostradale.it/?lang=en-GB
- Standard Rate
- £11–15
- Phone
- +420 222 222 221
- info@regiojet.cz
- Website
- regiojet.com
Bus from Luxembourg P+R Bouillon to London Victoria
- Ave. Duration
- 9h 20m
- Frequency
- Twice a week
- Estimated price
- £26–40
- Website
- https://regiojet.com/
- Phone
- +393293958604
- info@pistoiaviaggi.com
- Website
- pistoia-viaggi.it
Bus from Milano, Autostazione Lampugnano to Brussels-North Station
- Ave. Duration
- 16h 33m
- Frequency
- Once a week
- Schedules at
- pistoia-viaggi.it
- Phone
- +421 55 680 73 06
- onlinepredaj@eurobus.sk
- Website
- eurobus.sk
Bus from Brussel Eurolines Busstation to Sheffield
- Ave. Duration
- 10h 42m
- Frequency
- 4 times a week
- Estimated price
- £23–27
- Website
- https://www.eurobus.sk/en
- Phone
- +353 818 300 400
- info@irishferries.com
- Website
- irishferries.com
Car ferry from Calais to Port of Dover
- Ave. Duration
- 1h 30m
- Frequency
- Every 3 hours
- Estimated price
- £30–40
- Website
- https://www.irishferries.com/uk-en/Travel-to-Ireland
- Car
- £65–170
- On Foot
- £30–40
Want to know more about travelling around United Kingdom
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
Travelling to the UK: What do I need to know?
Read the travel guide
Italy Travel Guides
Read the travel guide
Getting to Milan from the airport
Read the travel guide
More Questions & Answers
Milan to Perth bus services, operated by FlixBus, arrive at Luxembourg, P+R Bouillon station.
Perth is 1h behind Milan. It is currently 9:54 PM in Milan and 8:54 PM in Perth.
Milan to Perth train services, operated by Trenitalia EuroCity, arrive at Zuerich Hb station.
There are 515+ hotels available in Perth.


















































































