Milan (Milano) is the main city of northern Italy and a principal economic hub. It is located 830km south of Amsterdam. Let's review the various transport options for travel between these 2 cities... |
1. Amsterdam-Milan by Air
Milan has 2 main airports - the large Malpensa airport (MXP) which is some distance outside the city and the more central Linate airport (LIN). Flights between Amsterdam Schiphol (AMS) and Milan take around 1 hour 40 minutes.
![]() | Skyteam codeshare partners KLM and Alitalia dominate this route with 8x daily flights. KLM flies 5x daily (3x to MXP, 2x to LIN) using Boeing 737 aircraft whilst Alitalia flies 3x daily to LIN using Airbus A320/1 aircraft. Prices start from €99 return. |
No frills airline Easyjet flies 3x daily from AMS to MXP with return prices available for just under €100 when you add in the luggage and booking fees.
KLM no frills subsidiary Transavia flies 4x weekly from Rotterdam airport (RTM) to Malpensa using Boeing 737s. Prices are similar to Easyjet.
Other airlines which fly indirectly are Air France (via Paris), Lufthansa (via Frankfurt or Munich), Swiss (via Zurich), Austrian (via Vienna) and Czech Air (via Prague).
2. Amsterdam-Milan by Train
There are no direct train services from Amsterdam to Milan or Italy. Probably the best way to travel by rail is to take the overnight City Night Line train from Amsterdam to Zürich Hauptbahnhof. This departs Amsterdam Central every night at 2031 and arrives at Zurich station the next morning at 0820.
One-way prices for the City Night Line start at €29 for seat only, €49 for a couchette and €79 for an economy sleeper. A deluxe 2 bed sleeper starts from €119 and a deluxe single sleeper from €199 - sleepers come with breakfast included; deluxe sleepers have ensuite facilities. |
From Zürich Hauptbahnhof you can then take a Eurocity train across the Alps to Milano Centrale - this journey runs 6x daily and takes 3 hours 40 minutes. This will cost from CHF 25 (about €20) if booked in advance.
For the return journey the City Night Line leaves Zürich HB at 2042 and arrives at Amsterdam Central at 0855.
There are some other alternatives:
Night train via Paris: Take an afternoon Thalys from Amsterdam to Paris Nord and transfer to Paris Bercy station. From there take the Artesia overnight train which departs at 2033 and arrives in Milan at 0538. Coming back from Milan the Artesia overnight train departs at 2338 and arrives at Paris Bercy at 0930 - you then connect to Paris Nord for a Thalys back to Amsterdam.
Day Journey via French TGV: Travel during the day by taking a morning Thalys train from Amsterdam to Paris Nord, then transfer to Paris Lyon where you take the TGV to Milano Centrale (1525 to 2230). In reverse the TGV departs Milan at 0643 arriving at Paris Lyon at 1356 - giving plenty of time to catch a Thalys back to Amsterdam.
Day Journey via German ICE: There are also a few options to travel during the day via Germany. One example is to take the ICE train from Amsterdam to Basel (0804 to 1447) then take a Eurocity train to Milan (1728 to 2135). Or from Milan take a morning Eurocity to Basel (0725 to 1132) then take the ICE train departing at 1512 which arrives in Amsterdam at 2155. This particular route allows a lunchtime stopover in Basel.
3. Amsterdam-Milan by Coach
Eurolines runs a daily (overnight) coach service from its Amsterdam Amstel terminal to Milan (Lampugnano coach station). The journey takes 20-24 hours and the lowest return promo fares start from €37.
![]() | Book a cheap hotel with rates up to 80% off and no need to pay until check-out in Amsterdam or Milan |