Milan (Milano) is the main city of northern Italy and a principal economic hub. It is located 830km south of Amsterdam.
Let’s look at the options for travel between Amsterdam and Milan by air, train or bus.
1. Amsterdam-Milan by Air
Milan has 2 main airports – the large Milan Malpensa airport (MXP) which is some distance outside the city and the more central Milan Linate airport (LIN). Flights between Amsterdam Schiphol (AMS) and Milan take less than 2 hours. Book an Amsterdam-Milan flight via Omio which gives all airline options.
Skyteam partners KLM and ITA Airways dominate this route.
KLM flies up to 5x daily from Amsterdam to both Milan Linate and Milan Malpensa using Boeing 737s and KLM Cityhopper-branded Embraer aircraft. Return fares are priced from €140 excluding checked luggage.
ITA Airways flies up to 3x daily from Amsterdam to Milan Linate using Airbus A320 aircraft. Base fares are broadly similar to KLM.
Easyjet flies up to 3x daily to Milan Malpensa ans 1x daily to Milan Linate. Return prices are available for just under €100 when you add in the luggage fees.
2. Amsterdam-Milan by Train
There are no direct train services from Amsterdam to Milan (or any other Italian cities). The best way to travel by day is to connect in either Basel or Paris.
Amsterdam-Milan via Basel: From Amsterdam Central take the 0808 ICE International train which arrives at Basel SBB at 1447. Then take the 1728 Eurocity train to Milano Centrale which arrives at 2140 – a journey of just under 14 hours total.
Likewise, the Eurocity departs Milan at 1010 arriving in Basel SBB at 1456; the ICE International leaves Basel at 1513, arriving in Amsterdam at 2158. Note the connection in Basel may be a bit tight, so one could also consider an earlier departure (0720-1132) for Milan-Basel.
Amsterdam-Basel ICE one-way fares are from €37.90 (2nd class) and €60 (1st class), though you should try to book well in advance.
2nd class fares do not include a reserved seat on the ICE. You can reserve a seat for €4 per person for each one-way trip. It is not obligatory to make a seat reservation, however it can be worthwhile if the train is busy. Seats are in a 2-2 configuration.
1st class fares include seat reservation as standard, with seating in a 1-2 configuration.
Basel-Milan Eurocity one-way fares start at €29 (2nd class) and €49 (1st class).
How to book online: Amsterdam-Basel, Basel-Milan and some Amsterdam-Milan rail through-fares can be booked at the NS International site
Amsterdam-Milan via Paris: Another possibility is to travel Amsterdam-Paris using the high speed Thalys and then take either a French operated TGV or an Italian operated Frecciarossa train between Paris and Milano. You have around 4 hours to change station in Paris and have some lunch. The total journey time is around 15 hours.
Take an early morning Thalys train from Amsterdam at 0715, arriving at Paris Nord at 1038. Then transfer to Paris Lyon where you either take the TGV to Milano Porta Garibaldi (1443 to 2150) via Lyon and Turin; or the more modern Frecciarossa train departing Paris Lyon at 1518, arriving at Milano Centrale at 2207.
In the other direction, the early TGV departs Milano Porta Garibaldi at 0600, arriving at Paris Lyon at 1312; similarly the Freccairossa departs Milano Centrale at 0625, arriving at Paris Lyon at 1312.
This allows enough time to catch the afternoon Thalys back from Paris Nord to Amsterdam (1522 to 1844).
Paris-Milan TGV one-way fares start from €29 (2nd class) and €46 (1st class) if booking in advance.
Paris-Milan Frecciarossa one-way fares start from €35 (Standard class), €42 (Business class) and €165 (Executive class).
Amsterdam-Paris Thalys fares are priced from €35 (Standard class), €72 (Comfort class) and €135 (Premium class).
How to book online: Amsterdam-Paris, Paris-Milan and some Amsterdam-Milan through-tickets can be booked at the NS International site
3. Amsterdam-Milan by Coach
German coach company Flixbus operates a 1x daily direct overnight coach service between Amsterdam Sloterdijk and Milan Lampugnano. There are also departures which require a single change in Germany or France. The trips take anything between 16-24 hours and singles start from around €50.
BlaBlaCar bus also offers a Amsteram-Milan coach service, although a change is required in Paris. Singles also start from around €50.
Book an Amsterdam-Milan coach trip with Omio.
In Amsterdam you can book your hotel with Booking.com here. For a comprehensive selection of museums, activities and tours in Amsterdam book with GetYourGuide here
In Milan you can book your hotel with Booking.com here. For a selection of tours and attractions in Milan book with GetYourGuide here
This article was originally published in 2011 and has been continuously updated since then. Last update 13 October 2022.