There are 7 ways to get from Haarlem to Milan by plane, train (Eurostar, Trenitalia), bus, night train, train, or car
Select an option below to see step-by-step directions and to compare ticket prices and travel times in Rome2Rio's travel planner.
Fly to Milan Linate Airport
best- Fly from Amsterdam Airport Schiphol (AMS) to Milan Linate Airport (LIN)plane AMS - LIN
4h 17m€63–219Fly to Milano Malpensa Airport, train
cheapest- 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 6m€61–222Train
- 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 29m€317–552Bus via Duomo M1
- Take the bus from Amsterdam Sloterdijk to Milanbus FlixBus N487 / ...
17h 37m€72–136Night 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 16m€161–475Bus
- Take the bus from Amsterdam City Center - Sloterdijk to Milano, Autostazione Lampugnanobus BlaBlaCar Bus
17h 43m€71–133Drive 1,065.1 km
- Drive from Haarlem to Milancar 1,065.1 km
10h 31m€190–274
Haarlem to Milan by train
Questions & Answers
The cheapest way to get from Haarlem to Milan is to bus which costs €70 - €140 and takes 17h 43m.
The fastest way to get from Haarlem to Milan is to fly which takes 4h 17m and costs €60 - €220.
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 29m.
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 29m and costs €310 - €550.
It takes approximately 4h 17m to get from Haarlem to Milan, including transfers.
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 €60 - €220. Alternatively, you can train, which costs €310 - €550 and takes 12h 29m, you could also bus via Duomo M1, which costs €70 - €140 and takes 17h 37m.
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.
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) every 2 hours. Alternatively, you can take a train from Haarlem to Milano Centrale via Rotterdam Centraal and Chambery Challes Les Eaux in around 12h 29m.
- Website
- easyjet.com
Flights from Amsterdam Airport Schiphol to Milan Linate Airport
- Ave. Duration
- 1h 37m
- When
- Every day
- Estimated price
- €55–180
Flights from Amsterdam Airport Schiphol to Milano Malpensa Airport
- Ave. Duration
- 1h 41m
- When
- Every day
- Estimated price
- €45–210
- Website
- klm.com
Flights from Amsterdam Airport Schiphol to Milan Linate Airport
- Ave. Duration
- 1h 39m
- When
- Every day
- Estimated price
- €60–360
- Website
- lufthansa.com
Flights from Amsterdam Airport Schiphol to Milan Linate Airport via Frankfurt
- Ave. Duration
- 3h 36m
- When
- Every day
- Estimated price
- €100–750
Flights from Amsterdam Airport Schiphol to Milano Malpensa Airport via Frankfurt
- Ave. Duration
- 3h 40m
- When
- Every day
- Estimated price
- €85–650
- Website
- ita-airways.com
Flights from Amsterdam Airport Schiphol to Milan Linate Airport
- Ave. Duration
- 1h 40m
- When
- Every day
- Estimated price
- €75–280
- Website
- swiss.com
Flights from Amsterdam Airport Schiphol to Milano Malpensa Airport via Zurich
- Ave. Duration
- 3h 55m
- When
- Every day
- Estimated price
- €85–330
- Phone
- +31 30 751 5155
- Website
- ns.nl
Train from Haarlem to Rotterdam Centraal
- Ave. Duration
- 56 min
- Frequency
- Every 30 minutes
- Estimated price
- €7–17
- Website
- https://www.ns.nl/en
Night train from Amsterdam Centraal to Zuerich Hb
- Ave. Duration
- 11h 4m
- Frequency
- Once daily
- Estimated price
- €85–210
- Website
- https://www.ns.nl/en
- Phone
- +44 343 218 6186
- Website
- eurostar.com
Train from Rotterdam Centraal to Chambery Challes Les Eaux
- Ave. Duration
- 6h 12m
- Frequency
- Twice a week
- Estimated price
- €270–460
- Website
- https://www.eurostar.com/rw-en
- Phone
- +39.06.5210550
- Website
- trenitalia.com
Train from Chambery Challes Les Eaux to Milano Centrale
- Ave. Duration
- 3h 21m
- Frequency
- Twice daily
- Estimated price
- €40–75
- 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
- Every 2 hours
- Estimated price
- €70–210
- Website
- https://www.sbb.ch/en
Train from Como S.Giovanni to Milano Porta Garibaldi
- Ave. Duration
- 1h 2m
- Frequency
- Once daily
- Estimated price
- €16–50
- 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
- +49 30 300 137 300
- service@flixbus.com
- Website
- flixbus.fr
Bus from Amsterdam Sloterdijk to Milan
- Ave. Duration
- 16h 5m
- Frequency
- Twice daily
- Estimated price
- €70–130
- Website
- https://www.flixbus.co.uk
- Phone
- +3-389-268-0068
- Website
- blablacar.co.uk
Bus from Amsterdam City Center - Sloterdijk to Milano, Autostazione Lampugnano
- Ave. Duration
- 16h 30m
- Frequency
- Twice daily
- Estimated price
- €70–130
- 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
Book your Haarlem to Milan train tickets online with Omio.
There are 14519+ hotels available in Milan.


































