The distance between Milan and Zagreb is around 557km (346 miles) and the quickest way to get there is to fly which takes around 2h 30m.
We've found 9 different ways to get from Milan to Zagreb by plane, train, bus and car. The recommended routes, which include information on duration, ticket price, and level of difficulty, can be found below.
👋 Also check out Zagreb → Milan if you're planning a return trip.
Fly from Milan Bergamo (BGY) to Zagreb (ZAG).
3 similiar routes
We’ve grouped similar routes together, click the arrows to see the other options.
Take the train to Vicenza then Villach Hbf and then to Zagreb Glavni Kol..
Multiple train operators
1 similiar route
We’ve grouped similar routes together, click the arrows to see the other options.
Take the train to Trieste Centrale then take the bus to Ljubljana bus station then take the train to Zagreb Glavni Kol..
Multiple operators
1 similiar route
We’ve grouped similar routes together, click the arrows to see the other options.
There are several options for getting from Milan to Zagreb by plane, train, bus and car. The cheapest option is to take the train and then take the bus which costs around HRK 235 ($31) and will take around 9h 50m. If you need to get there more quickly, you can fly and arrive in approximately 2h 30m, though it is a bit more costly at approximately HRK 480 ($64).
The distance between Milan and Zagreb is around 557km (346 miles). In a direct line (as the crow flies), the distance is 529km (329 miles)
It takes around 3h 5m to get from Milan and Zagreb by plane. If you are travelling by car it will take around 5h 55m to drive there.
The quickest way to get from Milan to Zagreb is to fly which takes around 2h 30m and will set you back approx HRK 480 ($64).
The cheapest way to travel between Milan and Zagreb, if you exclude driving, is to take the train and then take the bus which will typically cost around HRK 235 ($31) for a standard one-way ticket.
Yes there is a train service that runs between Milan and Zagreb. It typically takes around 9h 35m and departs once daily.
There are no direct train services that runs from Milan to Zagreb. However, you can instead can take several connecting trains with a changeover in Vicenza and Villach Hbf. These services run once daily and will take a minimum of 9h 35m.
Trenitalia, Swiss Railways, Trenitalia EuroCity, Austrian Railways (ÖBB) and Nightjet run train services between Milan and Zagreb. Trains depart once daily and will take around 9h 35m, however, this may vary depending on the particular service and whether it runs express or stops all stations.
Sorry, looks like there is no bus service that runs between Milan and Zagreb. We recommend that you fly from Milan Bergamo (BGY) to Zagreb (ZAG). instead which will take 2h 30m.
Yes you can fly from Milan and Zagreb. Flights depart from Milan Linate (LIN) and arrive at Zagreb (ZAG) - via Munich (MUC). The flight takes around 2h 15m.
Yes there is a direct flight between Milan and Zagreb with no stop-overs required. Flights typically take around 1h 15m.
Ryanair fly between Milan and Zagreb. Flights depart from Milan Bergamo (BGY) and and arrive into Zagreb (ZAG). These flights usually take around 1h 15m.
The flight from Milan to Zagreb typically takes around 2h 15m. Flights depart from Milan Linate (LIN) and and arrive into Zagreb (ZAG).
The closest major airport to Zagreb is Zagreb Airport (ZAG) (ZAG) which is approximately 11km (7 miles) from Zagreb. Rijeka Airport (RJK) (RJK) and Pula Airport (PUY) (PUY) are also nearby and might be a better alternative airport depending on where you are flying from.
Yes it is possible to drive from Milan and Zagreb. The distance is around 626km (389 miles) by road and it will take around 5h 55m in normal traffic conditons.
If you don't have a car, the easiest way to get from Milan to Zagreb is to fly which takes, on average, 3h 5m and will usually cost around HRK 2,335 ($310).
Transport option | Duration | Cost | Frequency | Distance |
---|---|---|---|---|
Fly to Zagreb (ZAG) + 3 similar | 2h 30m | HRK 480($64) | every 30 mins | 557km (346 miles) |
Fly | 3h 5m | HRK 2,335($310) | hourly | 831km (517 miles) |
Fly to Zagreb (ZAG) | 3h 30m | HRK 2,170($290) | every 30 mins | 988km (614 miles) |
Train and Plane | 5h 15m | HRK 2,670($355) | every 2 hours | 877km (545 miles) |
Train + 1 similar | 9h 35m | HRK 540($72) | once daily | 723km (449 miles) |
Train via Villach Hbf | 10h 10m | HRK 640($85) | twice daily | 725km (450 miles) |
Train and Bus + 1 similar | 7h 45m | HRK 555($74) | once daily | 637km (396 miles) |
Train to Verona Porta Nuova, Bus | 9h 50m | HRK 235($31) | once daily | 639km (397 miles) |
Drive | 5h 55m | HRK 855($115) | on demand | 626km (389 miles) |
Croatia Airlines
Slovenian Railways (SŽ)
Union Ivkoni
Croatia Bus International
The following major airports near Zagreb offer regular flights to various popular destinations within Croatia and internationally.