There are 9 ways to get from Haarlem to Milan by plane, train (TGV, Trenitalia), bus, night train, train, car, or car train
Select an option below to see step-by-step directions and to compare ticket prices and travel times in Rome2Rio's travel planner.
Fly Amsterdam Airport Schiphol to Milan Linate Airport
best- Fly from Amsterdam Airport Schiphol (AMS) to Milan Linate Airport (LIN)plane AMS - LIN
4h 16m€74–239Train to Brussels Airport, fly to Milan Linate Airport
cheapest- Take the train from Amsterdam Centraal to Anvers-Centraltrain
- Fly from Brussels Airport (BRU) to Milan Linate Airport (LIN)plane BRU - LIN
6h 16m€61–314Train
- Take the train from Amsterdam Centraal to Airport Charles de Gaulletrain
- Take the train from Aeroport Cdg2 Tgv Roissy to Lyon Part Dieutrain Tgv
- Take the train from Lyon Part Dieu to Milano Centraletrain Fr
11h 58m€187–374Bus via Duomo M1
- Take the bus from Amsterdam Sloterdijk to Milanbus FlixBus N487 / ...
17h 38m€88–156Night train, train
- Take the night train from Amsterdam Centraal to Zuerich Hbnighttrain Nj
- Take the train from Zürich HB to Como S. Giovannitrain Ec
- Take the train from Como S.Giovanni to Milano Porta Garibalditrain S11
17h 14m€171–489Fly Amsterdam Airport Schiphol to Milano Malpensa Airport, train
- Fly from Amsterdam Airport Schiphol (AMS) to Milano Malpensa Airport (MXP)plane AMS - MXP
- Take the train from Malpensa Aeroporto T1 to Milano Porta Garibalditrain
5h 10m€72–232Bus
- Take the bus from Amsterdam City Center - Sloterdijk to Milano, Autostazione Lampugnanobus BlaBlaCar Bus
17h 43m€97–173Drive 1,065.1 km
- Drive from Haarlem to Milancar 1,065.1 km
10h 31m€193–278Drive, car train
- Drive from Haarlem to Hannover Hbfcar
- Take the car train from Hannover Hbf to Freiburg im Breisgau Train Stationcartrain
- Drive from Freiburg im Breisgau Train Station to Milancar
15h 38m€226–318
Haarlem to Milan by train
Questions & Answers
The cheapest way to get from Haarlem to Milan is to bus via Duomo M1 which costs €85 - €160 and takes 17h 38m.
The fastest way to get from Haarlem to Milan is to fly which takes 4h 16m and costs €70 - €240.
No, there is no direct bus from Haarlem to Milan. However, there are services departing from Amsterdam Sloterdijk and arriving at Milan via . The journey, including transfers, takes approximately 17h 38m.
No, there is no direct train from Haarlem to Milan. However, there are services departing from Haarlem and arriving at Milano Centrale via Amsterdam Centraal, Aeroport Cdg2 Tgv Roissy and Lyon Part Dieu. The journey, including transfers, takes approximately 11h 58m.
The distance between Haarlem and Milan is 862 km. The road distance is 1065.1 km.
The best way to get from Haarlem to Milan without a car is to train which takes 11h 58m and costs €180 - €380.
It takes approximately 4h 16m to get from Haarlem to Milan, including transfers.
Haarlem to Milan bus services, operated by BlaBlaCar Bus, depart from Amsterdam City Center - Sloterdijk station.
Haarlem to Milan train services, operated by Nederlandse Spoorwegen (NS), depart from Amsterdam Centraal station.
The best way to get from Haarlem to Milan is to fly which takes 4h 16m and costs €70 - €240. Alternatively, you can train, which costs €180 - €380 and takes 11h 58m, you could also bus via Duomo M1, which costs €85 - €160 and takes 17h 38m.
What companies run services between Haarlem, Netherlands and Milan, Italy?
easyJet, ITA Airways, and three other airlines fly from Amsterdam Airport Schiphol (AMS) to Milan Linate Airport (LIN) hourly. Alternatively, you can take a train from Haarlem to Milano Centrale via Amsterdam Centraal, Aeroport Cdg2 Tgv Roissy, and Lyon Part Dieu in around 11h 58m.
- Website
- easyjet.com
Flights from Amsterdam Airport Schiphol to Milan Linate Airport
- Ave. Duration
- 1h 38m
- When
- Every day
- Estimated price
- €65–230
Flights from Amsterdam Airport Schiphol to Milano Malpensa Airport
- Ave. Duration
- 1h 43m
- When
- Monday, Tuesday, Friday, Thursday, Sunday, and Wednesday
- Estimated price
- €45–230
Flights from Brussels Airport to Milan Linate Airport
- Ave. Duration
- 1h 23m
- When
- Every day
- Estimated price
- €35–180
- Website
- ita-airways.com
Flights from Amsterdam Airport Schiphol to Milan Linate Airport
- Ave. Duration
- 1h 40m
- When
- Every day
- Estimated price
- €85–250
Flights from Brussels Airport to Milan Linate Airport
- Ave. Duration
- 1h 28m
- When
- Every day
- Estimated price
- €70–240
- Website
- klm.com
Flights from Amsterdam Airport Schiphol to Milan Linate Airport
- Ave. Duration
- 1h 38m
- When
- Every day
- Estimated price
- €65–380
Flights from Brussels Airport to Milan Linate Airport via Amsterdam Airport Schiphol
- Ave. Duration
- 3h 35m
- When
- Saturday and Sunday
- Estimated price
- €55–320
- Website
- lufthansa.com
Flights from Amsterdam Airport Schiphol to Milan Linate Airport via Frankfurt
- Ave. Duration
- 3h 46m
- When
- Every day
- Estimated price
- €110–370
Flights from Amsterdam Airport Schiphol to Milan Linate Airport via Munich
- Ave. Duration
- 4h
- When
- Tuesday, Wednesday, Thursday, Friday, and Sunday
- Estimated price
- €110–370
Flights from Brussels Airport to Milan Linate Airport via Frankfurt
- Ave. Duration
- 3h 35m
- When
- Monday, Tuesday, Friday, Saturday, and Sunday
- Estimated price
- €180–410
- Website
- brusselsairlines.com
Flights from Brussels Airport to Milan Linate Airport
- Ave. Duration
- 1h 28m
- When
- Every day
- Estimated price
- €70–240
- Website
- swiss.com
Flights from Amsterdam Airport Schiphol to Milano Malpensa Airport via Zurich
- Ave. Duration
- 3h 40m
- When
- Every day
- Estimated price
- €100–350
- Phone
- +31 30 751 5155
- Website
- ns.nl
Train from Amsterdam Centraal to Airport Charles de Gaulle
- Ave. Duration
- 2h 25m
- Frequency
- Twice a week
- Estimated price
- €55–120
- Website
- https://www.ns.nl/en
Night train from Amsterdam Centraal to Zuerich Hb
- Ave. Duration
- 11h 4m
- Frequency
- Twice daily
- Estimated price
- €90–200
- Website
- https://www.ns.nl/en
Train from Amsterdam Centraal to Anvers-Central
- Ave. Duration
- 2h 1m
- Frequency
- 5 times a day
- Estimated price
- €17–40
- Website
- https://www.ns.nl/en
- Phone
- +33 1 84 94 36 35
- Website
- sncf-connect.com
Train from Aeroport Cdg2 Tgv Roissy to Lyon Part Dieu
- Ave. Duration
- 2h 5m
- Frequency
- Hourly
- Estimated price
- €95–160
- Website
- https://www.sncf-connect.com/en-en
- Phone
- +33 1 84 94 36 35
- Website
- track.effiliation.com
Train from Aeroport Cdg2 Tgv Roissy to Lyon Part Dieu
- Ave. Duration
- 2h 3m
- Frequency
- 4 times a day
- Estimated price
- €75–150
- Website
- https://track.effiliation.com/servlet/effi.redir?id_compteur=23007591&url=https%3A%2F%2Fwww.sncf-connect.com%2Fen-en%2F
- Phone
- +39.06.5210550
- Website
- trenitalia.com
Train from Lyon Part Dieu to Milano Centrale
- Ave. Duration
- 4h 44m
- Frequency
- 4 times a day
- Estimated price
- €55–90
- Website
- https://www.trenitalia.com/en.html
- Phone
- +41 848 446 688
- Website
- sbb.ch
Train from Zürich HB to Como S. Giovanni
- Ave. Duration
- 2h 35m
- Frequency
- Hourly
- Estimated price
- €75–230
- Website
- https://www.sbb.ch/en
Train from Como S.Giovanni to Milano Porta Garibaldi
- Ave. Duration
- 1h 2m
- Frequency
- Once daily
- Estimated price
- €17–55
- Website
- https://www.sbb.ch/en
- Phone
- +39 02 7249 4494
- my-link@trenord.it
- Website
- trenord.it
Train from Como S.Giovanni to Milano Porta Garibaldi
- Ave. Duration
- 1h 1m
- Frequency
- Hourly
- Estimated price
- €4–6
- Website
- https://www.trenord.it/en/
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
- +44 (0)3432 186 186
- Website
- eurostar.com
Train from Amsterdam Centraal to Anvers-Central
- Ave. Duration
- 1h 20m
- Frequency
- Hourly
- Estimated price
- €50–90
- Website
- https://www.eurostar.com/rw-en
- Phone
- +31302035833
- info@europeansleeper.eu
- Website
- europeansleeper.eu
Train from Amsterdam Centraal to Anvers-Central
- Ave. Duration
- 2h 13m
- Frequency
- 5 times a week
- Estimated price
- €19–40
- Website
- https://www.europeansleeper.eu/
- Phone
- +49 (0) 221 800 20 820
- info@urlaubs-express.de
- Website
- urlaubs-express.de
Car train from Hannover Hbf to Freiburg im Breisgau Train Station
- Ave. Duration
- 7h 23m
- Frequency
- Once a week
- Estimated price
- €95–120
- Website
- https://urlaubs-express.de/?lang=en
- Phone
- +49 30 300 137 300
- service@flixbus.com
- Website
- https://www.flixbus.fr
Bus from Amsterdam Sloterdijk to Milan
- Ave. Duration
- 16h 5m
- Frequency
- Twice daily
- Estimated price
- €85–150
- Website
- https://www.flixbus.co.uk
- Phone
- +3 318 576 2228
- Website
- blablacar.co.uk
Bus from Amsterdam City Center - Sloterdijk to Milano, Autostazione Lampugnano
- Ave. Duration
- 16h 30m
- Frequency
- Twice daily
- Estimated price
- €95–170
- Website
- https://www.blablacar.co.uk/bus
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
5 delightfully under-the-radar French towns you need to visit
Read the travel guide
More Questions & Answers
Haarlem to Milan bus services, operated by BlaBlaCar Bus, arrive at Milano, Autostazione Lampugnano station.
Haarlem to Milan train services, operated by Nederlandse Spoorwegen (NS), arrive at Airport Charles de Gaulle station.
Yes, the driving distance between Haarlem to Milan is 1065 km. It takes approximately 10h 31m to drive from Haarlem to Milan.
Book your Haarlem to Milan train tickets online with Omio.
Book your Haarlem to Milan bus tickets online with Omio.
There are 14609+ hotels available in Milan.










































