There are 11 ways to get from Milan to Utrecht by plane, train, train (Trenitalia), bus, 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 Milan Linate Airport to Amsterdam Airport Schiphol, train
best- Fly from Milan Linate Airport (LIN) to Amsterdam Airport Schiphol (AMS)plane LIN - AMS
- Take the train from Schiphol Airport Train Station to Utrecht Centraaltrain
4h 36m€71–265Fly Milan Linate Airport to Brussels Airport, train
cheapest- Fly from Milan Linate Airport (LIN) to Brussels Airport (BRU)plane LIN - BRU
- Take the train from Brussels Airport-Zaventem to Bredatrain
- Take the train from Breda to 's-Hertogenboschtrain
- Take the train from 's-Hertogenbosch to Utrecht Centraaltrain
6h 43m€56–259Train via Frankfurt Airport (FRA)
- Take the train from Milano Centrale to Basel Sbbtrain Ec
- Take the train from Basel SBB to Mannheim, Hauptbahnhoftrain 12 / ...
- Take the train from Mannheim, Hauptbahnhof to Frankfurttrain 47 / ...
- Take the train from Frankfurt Flughafen Fernb to Utrecht Centraaltrain Ice
11h 56m€171–414Bus, train
- Take the bus from Milan to Eindhoven Stationbus FlixBus N473
- Take the train from Eindhoven Centraal to Utrecht Centraaltrain Intercity
16h 47m€90–151Drive 1,018.1 km
- Drive from Milan to Utrechtcar 1,018.1 km
10h 2m€188–271Train to Milano Malpensa Airport, fly to Amsterdam Airport Schiphol, train
- Take the train from Milano Porta Garibaldi to Malpensa Aeroporto T1train
- Fly from Milano Malpensa Airport (MXP) to Amsterdam Airport Schiphol (AMS)plane MXP - AMS
- Take the train from Schiphol Airport Train Station to Utrecht Centraaltrain
5h 18m€58–238Bus to Il Caravaggio International Airport, fly to Eindhoven Airport, train
- Take the bus from Piazza Luigi di Savoia to Milan Bergamo Orio al Serio Airportbus
- Fly from Il Caravaggio International Airport (BGY) to Eindhoven Airport (EIN)plane BGY - EIN
- Take the train from Eindhoven Centraal to Utrecht Centraaltrain
5h 56m€59–318Fly Milan Linate Airport to Düsseldorf International Airport, train
- Fly from Milan Linate Airport (LIN) to Düsseldorf International Airport (DUS)plane LIN - DUS
- Take the train from Düsseldorf Hbf to Utrecht Centraaltrain
7h€112–319Bus to Il Caravaggio International Airport, fly to Weeze Airport, bus, train
- Take the bus from Piazza Luigi di Savoia to Milan Bergamo Orio al Serio Airportbus
- Fly from Il Caravaggio International Airport (BGY) to Weeze Airport (NRN)plane BGY - NRN
- Take the bus from Weeze Airport Terminal 1 to Nijmegen Centraal Stationbus
- Take the train from Nijmegen to Utrecht Centraaltrain
6h 58m€70–311Train
- Take the train from Milano Centrale to Basel Sbbtrain Ec
- Take the train from Basel SBB to Utrecht Centraaltrain 43N
14h 57m€219–417Bus
- Take the bus from Milano, Autostazione Lampugnano to Amsterdam City Center - Sloterdijkbus BlaBlaCar Bus
- Take the bus from Amsterdam City Center - Sloterdijk to Utrechtbus BlaBlaCar Bus
17h 50m€79–126
Milan to Utrecht by train
Comparing Your Travel Options
The cheapest way to get from Milan to Utrecht is to bus which costs €75 - €130 and takes 17h 50m.
The fastest way to get from Milan to Utrecht is to fly and train which takes 4h 36m and costs €70 - €270.
No, there is no direct bus from Milan to Utrecht. However, there are services departing from Milano, Autostazione Lampugnano and arriving at Utrecht via Amsterdam City Center - Sloterdijk. The journey, including transfers, takes approximately 17h 50m.
No, there is no direct train from Milan to Utrecht. However, there are services departing from Milano Centrale and arriving at Utrecht Centraal via Basel SBB, Mannheim, Hauptbahnhof and Frankfurt Flughafen Fernb. The journey, including transfers, takes approximately 11h 56m.
The distance between Milan and Utrecht is 881 km. The road distance is 1018.1 km.
The best way to get from Milan to Utrecht without a car is to train via Frankfurt Airport (FRA) which takes 11h 56m and costs €170 - €420.
It takes approximately 4h 36m to get from Milan to Utrecht, including transfers.
Milan to Utrecht bus services, operated by BlaBlaCar Bus, depart from Milano, Autostazione Lampugnano station.
Milan to Utrecht train services, operated by Trenitalia EuroCity, depart from Milano Centrale station.
The best way to get from Milan to Utrecht is to train via Frankfurt Airport (FRA) which takes 11h 56m and costs €170 - €420. Alternatively, you can bus, which costs €75 - €130 and takes 17h 50m.
What companies run services between Milan, Italy and Utrecht, Netherlands?
You can take a train from Milano Centrale to Utrecht Centraal via Basel SBB, Mannheim, Hauptbahnhof, and Frankfurt Flughafen Fernb in around 11h 56m. Alternatively, you can take a bus from Milano, Autostazione Lampugnano to Utrecht via Amsterdam City Center - Sloterdijk in around 17h 50m.
- Website
- easyjet.com
Flights from Milan Linate Airport to Amsterdam Airport Schiphol
- Ave. Duration
- 1h 54m
- When
- Every day
- Estimated price
- €60–230
Flights from Milano Malpensa Airport to Amsterdam Airport Schiphol
- Ave. Duration
- 1h 56m
- When
- Every day
- Estimated price
- €45–180
Flights from Milan Linate Airport to Brussels Airport
- Ave. Duration
- 1h 35m
- When
- Every day
- Estimated price
- €30–160
- Website
- lufthansa.com
Flights from Milan Linate Airport to Amsterdam Airport Schiphol via Munich
- Ave. Duration
- 3h 30m
- When
- Monday, Tuesday, Wednesday, Thursday, Friday, and Sunday
- Estimated price
- €100–380
Flights from Milan Linate Airport to Amsterdam Airport Schiphol via Frankfurt
- Ave. Duration
- 4h
- When
- Every day
- Estimated price
- €100–380
Flights from Milano Malpensa Airport to Amsterdam Airport Schiphol via Frankfurt
- Ave. Duration
- 4h 35m
- When
- Every day
- Estimated price
- €95–460
Flights from Milan Linate Airport to Brussels Airport via Frankfurt
- Ave. Duration
- 3h 15m
- When
- Monday, Tuesday, Wednesday, Thursday, Friday, and Sunday
- Estimated price
- €180–290
Flights from Milan Linate Airport to Brussels Airport via Munich
- Ave. Duration
- 3h 27m
- When
- Every day
- Estimated price
- €95–290
Flights from Milan Linate Airport to Düsseldorf International Airport via Munich
- Ave. Duration
- 3h 41m
- When
- Monday, Tuesday, Wednesday, Thursday, Friday, and Sunday
- Estimated price
- €100–330
Flights from Milan Linate Airport to Düsseldorf International Airport via Frankfurt
- Ave. Duration
- 3h 21m
- When
- Every day
- Estimated price
- €100–330
- Website
- ita-airways.com
Flights from Milan Linate Airport to Amsterdam Airport Schiphol
- Ave. Duration
- 1h 55m
- When
- Every day
- Estimated price
- €95–240
Flights from Milan Linate Airport to Brussels Airport
- Ave. Duration
- 1h 33m
- When
- Every day
- Estimated price
- €70–300
Flights from Milan Linate Airport to Düsseldorf International Airport
- Ave. Duration
- 1h 30m
- When
- Monday, Tuesday, Wednesday, Thursday, Friday, and Sunday
- Estimated price
- €80–200
Flights from Milan Linate Airport to Düsseldorf International Airport via Munich
- Ave. Duration
- 3h 5m
- When
- Monday, Tuesday, Wednesday, Thursday, Friday, and Sunday
- Estimated price
- €100–330
Flights from Milan Linate Airport to Düsseldorf International Airport via Frankfurt
- Ave. Duration
- 3h 27m
- When
- Every day
- Estimated price
- €100–330
- Website
- klm.com
Flights from Milan Linate Airport to Amsterdam Airport Schiphol
- Ave. Duration
- 1h 49m
- When
- Every day
- Estimated price
- €55–330
Flights from Milan Linate Airport to Brussels Airport via Amsterdam Airport Schiphol
- Ave. Duration
- 3h 40m
- When
- Monday, Tuesday, Thursday, Friday, Saturday, and Sunday
- Estimated price
- €60–340
- Website
- ryanair.com
Flights from Il Caravaggio International Airport to Eindhoven Airport
- Ave. Duration
- 1h 40m
- When
- Every day
- Estimated price
- €40–250
Flights from Il Caravaggio International Airport to Eindhoven Airport via London Stansted
- Ave. Duration
- 4h
- When
- Saturday
- Estimated price
- €40–250
Flights from Il Caravaggio International Airport to Weeze Airport
- Ave. Duration
- 1h 35m
- When
- Tuesday, Wednesday, Thursday, Saturday, and Sunday
- Estimated price
- €50–260
Flights from Il Caravaggio International Airport to Weeze Airport via Zagreb
- Ave. Duration
- 3h 55m
- When
- Thursday
- Estimated price
- €50–260
- Website
- brusselsairlines.com
Flights from Milan Linate Airport to Brussels Airport
- Ave. Duration
- 1h 33m
- When
- Every day
- Estimated price
- €70–300
- Website
- eurowings.com
Flights from Milan Linate Airport to Düsseldorf International Airport
- Ave. Duration
- 1h 30m
- When
- Monday, Tuesday, Wednesday, Thursday, Friday, and Sunday
- Estimated price
- €80–200
- Website
- airfrance.com
Flights from Milan Linate Airport to Düsseldorf International Airport via Paris Charles de Gaulle
- Ave. Duration
- 3h 47m
- When
- Every day
- Estimated price
- €55–320
- Phone
- +31 30 751 5155
- Website
- Nederlandse Spoorwegen (NS)
Train from Schiphol Airport Train Station to Utrecht Centraal
- Ave. Duration
- 33 min
- Frequency
- Every 15 minutes
- Estimated price
- €4–10
- Website
- Nederlandse Spoorwegen (NS)
Train from Mannheim, Hauptbahnhof to Frankfurt
- Ave. Duration
- 31 min
- Frequency
- Once daily
- Estimated price
- €7–16
- Website
- Nederlandse Spoorwegen (NS)
Train from Frankfurt Flughafen Fernb to Utrecht Centraal
- Ave. Duration
- 3h 35m
- Frequency
- Every 3 hours
- Estimated price
- €40–85
- Website
- Nederlandse Spoorwegen (NS)
Train from Eindhoven Centraal to Utrecht Centraal
- Ave. Duration
- 49 min
- Frequency
- Every 15 minutes
- Estimated price
- €8–18
- Website
- Nederlandse Spoorwegen (NS)
Train from Schiphol Airport Train Station to Utrecht Centraal
- Ave. Duration
- 33 min
- Frequency
- Every 15 minutes
- Estimated price
- €4–10
- Website
- Nederlandse Spoorwegen (NS)
Train from Eindhoven Centraal to Utrecht Centraal
- Ave. Duration
- 49 min
- Frequency
- Every 15 minutes
- Estimated price
- €8–18
- Website
- Nederlandse Spoorwegen (NS)
Train from Brussels Airport-Zaventem to Breda
- Ave. Duration
- 1h 8m
- Frequency
- Hourly
- Estimated price
- €10–21
- Website
- Nederlandse Spoorwegen (NS)
Train from Breda to 's-Hertogenbosch
- Ave. Duration
- 36 min
- Frequency
- Every 30 minutes
- Estimated price
- €4–10
- Website
- Nederlandse Spoorwegen (NS)
Train from 's-Hertogenbosch to Utrecht Centraal
- Ave. Duration
- 42 min
- Frequency
- Every 15 minutes
- Estimated price
- €5–11
- Website
- Nederlandse Spoorwegen (NS)
Train from Düsseldorf Hbf to Utrecht Centraal
- Ave. Duration
- 2h 10m
- Frequency
- Every 4 hours
- Estimated price
- €19–40
- Website
- Nederlandse Spoorwegen (NS)
Train from Nijmegen to Utrecht Centraal
- Ave. Duration
- 53 min
- Frequency
- Every 30 minutes
- Estimated price
- €8–17
- Website
- Nederlandse Spoorwegen (NS)
- Phone
- 0800-0232 545
- Website
- Arriva NL
Train from Schiphol Airport Train Station to Utrecht Centraal
- Ave. Duration
- 46 min
- Frequency
- Once a week
- Estimated price
- €8–13
- Website
- Arriva NL
- Second Class Single
- €8–13
Train from Eindhoven Centraal to Utrecht Centraal
- Ave. Duration
- 46 min
- Frequency
- Once a week
- Estimated price
- €13–19
- Website
- Arriva NL
- Second Class Single
- €13–19
Train from Schiphol Airport Train Station to Utrecht Centraal
- Ave. Duration
- 46 min
- Frequency
- Once a week
- Estimated price
- €8–13
- Website
- Arriva NL
- Second Class Single
- €8–13
Train from Eindhoven Centraal to Utrecht Centraal
- Ave. Duration
- 46 min
- Frequency
- Once a week
- Estimated price
- €13–19
- Website
- Arriva NL
- Second Class Single
- €13–19
- Phone
- +39 06 68475475
- ufficiogruppi@trenitalia.it
- Website
- Trenitalia Eurocity
Train from Milano Centrale to Basel Sbb
- Ave. Duration
- 4h 20m
- Frequency
- Every 2 hours
- Estimated price
- €75–130
- Website
- Trenitalia Eurocity
- 1st Class
- €90–130
- 2nd Class
- €75–110
Train from Basel SBB to Mannheim, Hauptbahnhof
- Ave. Duration
- 2h 12m
- Frequency
- Twice daily
- Estimated price
- €55–110
- Website
- Trenitalia Eurocity
- 1st Class
- €75–110
- 2nd Class
- €55–80
Train from Milano Centrale to Basel Sbb
- Ave. Duration
- 4h 20m
- Frequency
- Every 2 hours
- Estimated price
- €75–130
- Website
- Trenitalia Eurocity
- 1st Class
- €90–130
- 2nd Class
- €75–110
- Phone
- +49 30 2970
- Website
- Deutsche Bahn Intercity (DB IC)
Train from Basel SBB to Mannheim, Hauptbahnhof
- Ave. Duration
- 2h 6m
- Frequency
- Hourly
- Estimated price
- €45–95
- Website
- Deutsche Bahn Intercity (DB IC)
Train from Mannheim, Hauptbahnhof to Frankfurt
- Ave. Duration
- 31 min
- Frequency
- Hourly
- Estimated price
- €13–27
- Website
- Deutsche Bahn Intercity (DB IC)
Train from Frankfurt Flughafen Fernb to Utrecht Centraal
- Ave. Duration
- 3h 37m
- Frequency
- Every 3 hours
- Estimated price
- €70–150
- Website
- Deutsche Bahn Intercity (DB IC)
Train from Düsseldorf Hbf to Utrecht Centraal
- Ave. Duration
- 2h 12m
- Frequency
- Every 3 hours
- Estimated price
- €30–70
- Website
- Deutsche Bahn Intercity (DB IC)
Train from Basel SBB to Utrecht Centraal
- Ave. Duration
- 9h 37m
- Frequency
- Twice daily
- Estimated price
- €140–290
- Website
- Deutsche Bahn Intercity (DB IC)
- Phone
- +39 02 7249 4494
- my-link@trenord.it
- Website
- Trenord
Train from Milano Porta Garibaldi to Malpensa Aeroporto T1
- Ave. Duration
- 43 min
- Frequency
- Every 30 minutes
- Estimated price
- €4–6
- Website
- Trenord
- Phone
- +32 70 79 79 79
- Website
- Belgian Railways
Train from Brussels Airport-Zaventem to Breda
- Ave. Duration
- 1h 7m
- Frequency
- Hourly
- Estimated price
- €16–26
- Website
- Belgian Railways
- Phone
- +43 5 1717
- Website
- Österreichische Bundesbahnen
Train from Basel SBB to Utrecht Centraal
- Ave. Duration
- 9h 37m
- Frequency
- 4 times a week
- Estimated price
- €150–230
- Website
- Österreichische Bundesbahnen
- Phone
- +49 30 300 137 300
- service@flixbus.com
- Website
- Flixbus
Bus from Milan to Eindhoven Station
- Ave. Duration
- 14h 35m
- Frequency
- 6 times a week
- Estimated price
- €80–130
- Website
- Flixbus
- customerservices@terravision.eu
- Website
- TERRAVISION
Bus from Piazza Luigi di Savoia to Milan Bergamo Orio al Serio Airport
- Ave. Duration
- 50 min
- Frequency
- Every 30 minutes
- Estimated price
- €5–23
- Website
- TERRAVISION
Bus from Piazza Luigi di Savoia to Milan Bergamo Orio al Serio Airport
- Ave. Duration
- 50 min
- Frequency
- Every 30 minutes
- Estimated price
- €5–23
- Website
- TERRAVISION
- Phone
- 035.319366
- ticket@orioshuttle.com
- Website
- orioshuttle.com
Bus from Piazza Luigi di Savoia to Milan Bergamo Orio al Serio Airport
- Ave. Duration
- 50 min
- Frequency
- Every 30 minutes
- Estimated price
- €11–15
- Schedules at
- orioshuttle.com
Bus from Piazza Luigi di Savoia to Milan Bergamo Orio al Serio Airport
- Ave. Duration
- 50 min
- Frequency
- Every 30 minutes
- Estimated price
- €11–15
- Schedules at
- orioshuttle.com
Bus from Weeze Airport Terminal 1 to Nijmegen Centraal Station
- Ave. Duration
- 1h 7m
- Frequency
- Hourly
- Estimated price
- €7–11
- Schedules at
- BVR Busverkehr Rheinland GmbH
- Phone
- +31-383394700
- Website
- Transdev Netherlands
Bus from Weeze Airport Terminal 1 to Nijmegen Centraal Station
- Ave. Duration
- 1h 7m
- Frequency
- Every 2 hours
- Estimated price
- €9–11
- Website
- Transdev Netherlands
- Phone
- +3 318 576 2228
- Website
- BlaBlaCar Bus
Bus from Milano, Autostazione Lampugnano to Amsterdam City Center - Sloterdijk
- Ave. Duration
- 16h 5m
- Frequency
- 4 times a day
- Estimated price
- €75–130
- Website
- BlaBlaCar Bus
Bus from Amsterdam City Center - Sloterdijk to Utrecht
- Ave. Duration
- 45 min
- Frequency
- Every 2 hours
- Estimated price
- €3–5
- Website
- BlaBlaCar Bus
Want to know more about travelling around Netherlands
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
Heading to Europe? Read this before you buy a Eurail Pass
Read the travel guide
Booking & Getting There
Milan to Utrecht bus services, operated by BlaBlaCar Bus, arrive at Amsterdam City Center - Sloterdijk station.
Milan to Utrecht train services, operated by Trenitalia EuroCity, arrive at Basel Sbb station.
Yes, the driving distance between Milan to Utrecht is 1018 km. It takes approximately 10h 2m to drive from Milan to Utrecht.
Book your Milan to Utrecht train tickets online with Omio.
Book your Milan to Utrecht bus tickets online with Omio.
There are 645+ hotels available in Utrecht.
















































