There are 9 ways to get from Haarlem to Milan by plane, train (Eurostar, 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 17m€69–259Train 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 12m€59–322Train
- Take the train from Haarlem to Rotterdam Centraaltrain
- Take the train from Rotterdam Centraal to Brussel-Zuid / Bruxelles-Miditrain
- Take the train from Brussel-Zuid / Bruxelles-Midi to Chambery Challes Les Eauxtrain
- Take the train from Chambery Challes Les Eaux to Milano Centraletrain Fr
12h 19m€313–545Bus via Duomo M1
- Take the bus from Amsterdam Sloterdijk to Milanbus FlixBus N487 / ...
17h 38m€88–156Night train, train
- Take the nighttrain 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 10m€166–464Fly 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 11m€67–242Bus
- Take the bus from Amsterdam City Center - Sloterdijk to Milano, Autostazione Lampugnanobus BlaBlaCar Bus
17h 43m€97–183Drive 1,065.1 km
- Drive from Haarlem to Milancar 1,065.1 km
10h 31m€189–273Drive, car train
- Drive from Haarlem to Hannover Hbfcar
- Take the cartrain from Hannover Hbf to Freiburg im Breisgau Train Stationcartrain
- Drive from Freiburg im Breisgau Train Station to Milancar
15h 38m€225–315
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 17m and costs €65 - €260.
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 Rotterdam Centraal, Brussel-Zuid / Bruxelles-Midi and Chambery Challes Les Eaux. The journey, including transfers, takes approximately 12h 19m.
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 12h 19m and costs €310 - €550.
It takes approximately 4h 17m 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 Haarlem station.
The best way to get from Haarlem to Milan is to fly which takes 4h 17m and costs €65 - €260. Alternatively, you can train, which costs €310 - €550 and takes 12h 19m, 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 two 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 Rotterdam Centraal, Brussel-Zuid / Bruxelles-Midi, and Chambery Challes Les Eaux in around 12h 19m.
- Website
- easyjet.com
Flights from Amsterdam Airport Schiphol to Milan Linate Airport
- Ave. Duration
- 1h 41m
- When
- Every day
- Estimated price
- €60–250
Flights from Amsterdam Airport Schiphol to Milano Malpensa Airport
- Ave. Duration
- 1h 44m
- When
- Every day
- Estimated price
- €40–230
Flights from Brussels Airport to Milan Linate Airport
- Ave. Duration
- 1h 23m
- When
- Every day
- Estimated price
- €35–170
- Website
- ita-airways.com
Flights from Amsterdam Airport Schiphol to Milan Linate Airport
- Ave. Duration
- 1h 40m
- When
- Every day
- Estimated price
- €90–230
Flights from Brussels Airport to Milan Linate Airport
- Ave. Duration
- 1h 28m
- When
- Every day
- Estimated price
- €70–290
- Website
- klm.com
Flights from Amsterdam Airport Schiphol to Milan Linate Airport
- Ave. Duration
- 1h 38m
- When
- Every day
- Estimated price
- €60–360
Flights from Brussels Airport to Milan Linate Airport via Amsterdam Airport Schiphol
- Ave. Duration
- 3h 35m
- When
- Saturday and Sunday
- Estimated price
- €55–300
- Website
- brusselsairlines.com
Flights from Brussels Airport to Milan Linate Airport
- Ave. Duration
- 1h 28m
- When
- Every day
- Estimated price
- €70–290
- Website
- lufthansa.com
Flights from Amsterdam Airport Schiphol to Milan Linate Airport via Frankfurt
- Ave. Duration
- 3h 41m
- When
- Every day
- Estimated price
- €120–360
Flights from Brussels Airport to Milan Linate Airport via Frankfurt
- Ave. Duration
- 3h 35m
- When
- Monday, Tuesday, Friday, Saturday, and Sunday
- Estimated price
- €190–310
- Website
- swiss.com
Flights from Amsterdam Airport Schiphol to Milano Malpensa Airport via Zurich
- Ave. Duration
- 3h 50m
- When
- Every day
- Estimated price
- €95–320
- Phone
- +31 30 751 5155
- Website
- Nederlandse Spoorwegen (NS)
Train from Haarlem to Rotterdam Centraal
- Ave. Duration
- 56 min
- Frequency
- Every 30 minutes
- Estimated price
- €7–16
- Website
- Nederlandse Spoorwegen (NS)
Night train from Amsterdam Centraal to Zuerich Hb
- Ave. Duration
- 11h 4m
- Frequency
- Twice daily
- Estimated price
- €90–190
- Website
- Nederlandse Spoorwegen (NS)
Train from Amsterdam Centraal to Anvers-Central
- Ave. Duration
- 1h 40m
- Frequency
- 5 times a day
- Estimated price
- €17–40
- Website
- Nederlandse Spoorwegen (NS)
- Phone
- +44 (0)3432 186 186
- Website
- Eurostar
Train from Rotterdam Centraal to Brussel-Zuid / Bruxelles-Midi
- Ave. Duration
- 1h 8m
- Frequency
- Hourly
- Estimated price
- €35–70
- Website
- Eurostar
Train from Brussel-Zuid / Bruxelles-Midi to Chambery Challes Les Eaux
- Ave. Duration
- 4h 29m
- Frequency
- 5 times a week
- Estimated price
- €230–390
- Website
- Eurostar
Train from Amsterdam Centraal to Anvers-Central
- Ave. Duration
- 1h 20m
- Frequency
- Hourly
- Estimated price
- €45–80
- Website
- Eurostar
- Phone
- +39.06.5210550
- Website
- Trenitalia
Train from Chambery Challes Les Eaux to Milano Centrale
- Ave. Duration
- 3h 21m
- Frequency
- 4 times a day
- Estimated price
- €40–70
- Website
- Trenitalia
Train from Zürich HB to Como S. Giovanni
- Ave. Duration
- 2h 35m
- Frequency
- Hourly
- Estimated price
- €70–220
- Website
- Swiss Federal Railways (SBB CFF FFS)
Train from Como S.Giovanni to Milano Porta Garibaldi
- Ave. Duration
- 1h 2m
- Frequency
- Once daily
- Estimated price
- €16–50
- Website
- Swiss Federal Railways (SBB CFF FFS)
- Phone
- +39 02 7249 4494
- [email protected]
- Website
- Trenord
Train from Como S.Giovanni to Milano Porta Garibaldi
- Ave. Duration
- 1h 1m
- Frequency
- Hourly
- Estimated price
- €4–6
- Website
- Trenord
Train from Malpensa Aeroporto T1 to Milano Porta Garibaldi
- Ave. Duration
- 44 min
- Frequency
- Every 30 minutes
- Estimated price
- €4–6
- Website
- Trenord
- Phone
- +32 70 79 79 79
- Website
- Belgian Railways
Train from Amsterdam Centraal to Anvers-Central
- Ave. Duration
- 1h 20m
- Frequency
- Once daily
- Estimated price
- €27–55
- Website
- Belgian Railways
- Phone
- +31302035833
- [email protected]
- Website
- European Sleeper
Train from Amsterdam Centraal to Anvers-Central
- Ave. Duration
- 2h 13m
- Frequency
- 4 times a week
- Estimated price
- €19–40
- Website
- European Sleeper
- Phone
- +49 (0) 221 800 20 820
- [email protected]
- Website
- Urlaubs-Express (UEX)
Car train from Hannover Hbf to Freiburg im Breisgau Train Station
- Ave. Duration
- 7h 23m
- Frequency
- Once a week
- Estimated price
- €95–120
- Website
- Urlaubs-Express (UEX)
- Phone
- +49 30 300 137 300
- [email protected]
- Website
- Flixbus
Bus from Amsterdam Sloterdijk to Milan
- Ave. Duration
- 16h 5m
- Frequency
- Twice daily
- Estimated price
- €85–150
- Website
- Flixbus
- Phone
- +3 318 576 2228
- Website
- BlaBlaCar Bus
Bus from Amsterdam City Center - Sloterdijk to Milano, Autostazione Lampugnano
- Ave. Duration
- 16h 30m
- Frequency
- Twice daily
- Estimated price
- €95–180
- Website
- BlaBlaCar 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 Rotterdam Centraal 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 14359+ hotels available in Milan.





































