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, train to Brussels Airport, fly to Milan Linate Airport
cheapest- Take the train from Haarlem to Rotterdam Centraaltrain
- Take the train from Rotterdam Centraal to Brussels Airport-Zaventemtrain
- Fly from Brussels Airport (BRU) to Milan Linate Airport (LIN)plane BRU - LIN
6h 31m€58–268Train
- Take the train from Haarlem to Rotterdam Centraaltrain
- Take the train from Rotterdam Centraal to Chambery Challes Les Eauxtrain
- Take the train from Chambery Challes Les Eaux to Milano Centraletrain Fr
12h 21m€317–545Bus via Duomo M1
- Take the bus from Amsterdam Sloterdijk to Milanbus FlixBus N487 / ...
17h 38m€88–146Night 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€62–252Bus
- 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€190–274Drive, 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–316
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 - €150 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 and Chambery Challes Les Eaux. The journey, including transfers, takes approximately 12h 21m.
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 21m 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 21m, you could also bus via Duomo M1, which costs €85 - €150 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 and Chambery Challes Les Eaux in around 12h 21m.
- Website
- easyjet.com
Flights from Amsterdam Airport Schiphol to Milan Linate Airport
- Ave. Duration
- 1h 41m
- When
- Every day
- Estimated price
- €60–240
Flights from Amsterdam Airport Schiphol to Milano Malpensa Airport
- Ave. Duration
- 1h 43m
- When
- Every day
- Estimated price
- €40–230
Flights from Brussels Airport to Milan Linate Airport
- Ave. Duration
- 1h 23m
- When
- Every day
- Estimated price
- €30–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
- €65–330
- 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–310
- Website
- brusselsairlines.com
Flights from Brussels Airport to Milan Linate Airport
- Ave. Duration
- 1h 28m
- When
- Every day
- Estimated price
- €65–330
- 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–300
- Website
- swiss.com
Flights from Amsterdam Airport Schiphol to Milano Malpensa Airport via Zurich
- Ave. Duration
- 3h 50m
- When
- Every day
- Estimated price
- €95–330
- 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
- 6 times a week
- Estimated price
- €90–190
- 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)
Train from Rotterdam Centraal to Brussels Airport-Zaventem
- Ave. Duration
- 1h 40m
- Frequency
- Hourly
- Estimated price
- €15–35
- Website
- Nederlandse Spoorwegen (NS)
- Phone
- +44 (0)3432 186 186
- Website
- Eurostar
Train from Rotterdam Centraal to Chambery Challes Les Eaux
- Ave. Duration
- 6h 4m
- Frequency
- Twice a week
- Estimated price
- €270–460
- Website
- Eurostar
- Phone
- +39.06.5210550
- Website
- Trenitalia
Train from Chambery Challes Les Eaux to Milano Centrale
- Ave. Duration
- 3h 21m
- Frequency
- Twice daily
- 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
- my-link@trenord.it
- 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 Rotterdam Centraal to Brussels Airport-Zaventem
- Ave. Duration
- 1h 39m
- Frequency
- Hourly
- Estimated price
- €24–50
- Website
- Belgian Railways
- Phone
- +49 (0) 221 800 20 820
- info@urlaubs-express.de
- 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
- service@flixbus.com
- Website
- Flixbus
Bus from Amsterdam Sloterdijk to Milan
- Ave. Duration
- 16h 5m
- Frequency
- Twice daily
- Estimated price
- €85–140
- 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–170
- 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 14172+ hotels available in Milan.





































