Journey information
Overview: Zagreb to Milan flight
Flights from Zagreb to Milan depart on average 23 times per day, taking around 2h 42m. Cheap flight tickets for this journey start at £15 if you book in advance.
There are 1 flights per day. The earliest flight runs at 05:35, the last at 23:55. The fastest flight covers the 529 km distance in 1h 15m. April is the cheapest month to fly.
Distance 529 km |
Average flight duration 2h 42m |
Cheapest ticket price £15 |
Flights per day 23 |
Direct flights 1 |
Fastest flight 1h 15m |
First flight 5:35 |
Last flight 23:55 |
Cheapest Month Apr |
Cheapest Day Thu |
High Season Apr - Jun |
Low Season Jan - Mar |
Busiest Day Thu |
Least Busy Day Wed |
Best time to book 2 days |
The cheapest and fastest flights from Zagreb to Milan
Cheapest price
£136
Average price
£491
Fastest journey
1 h 15 m
Average duration
3 h 19 m
Flights per day
49
Distance
529 km
The best way to find a cheap flight ticket from Zagreb to Milan is to book your journey as far in advance as possible and to avoid travelling at rush hour.
The average ticket from Zagreb to Milan will cost around £491 if you buy it on the day, but you can find cheap flight tickets today for only £136.
Of the 49 flights that leave Zagreb for Milan every day 1 travel direct so it’s quite easy to avoid journeys where you’ll have to change along the way.
These direct flights cover the 529 km distance in an average of 3 h 19 m but if you time it right, some flights will get you there in just 1 h 15 m .
The slowest flights will take 4 h 20 m and usually involve a change or two along the way, but you might be able to save a few pennies if you’re on a budget.
FR 60555:551h15Zagreb Franjo Tuđman Airport7:10Milan Bergamo Orio al Serio Airport£1361One-way0 changes
LO612 · LO31712:5020h55Zagreb Franjo Tuđman Airport9:45Milan Malpensa Airport£2281One-way1 change
LO614 · LO31918:0524h50Zagreb Franjo Tuđman Airport18:55Milan Malpensa Airport£2281One-way1 change
LO614 · LO31718:0515h40Zagreb Franjo Tuđman Airport9:45Milan Malpensa Airport£2281One-way1 change
LO612 · LO31912:506h05Zagreb Franjo Tuđman Airport18:55Milan Malpensa Airport£2281One-way1 change
FR 60555:551h15Zagreb Franjo Tuđman Airport7:10Milan Bergamo Orio al Serio Airport£1361One-way0 changes
OS604 · OS52311:252h45Zagreb Franjo Tuđman Airport14:10Milan Linate Airport£4951One-way1 change
LH1407+
LH69045:553h55Zagreb Franjo Tuđman Airport9:50Milan Linate Airport£5051One-way1 change
LH6003+
LH28017:554h20Zagreb Franjo Tuđman Airport22:15Milan Linate Airport£6251One-way1 change
LH6007+
LH2727:404h20Zagreb Franjo Tuđman Airport12:00Milan Linate Airport£7301One-way1 change
Travel Information
Compare coach and flight for Zagreb to Milan
Omio recommends booking the coach as it is the most popular option from Zagreb to Milan among Omio's users. If you are prioritising price take the coach with prices starting from £20. For those with little time consider booking a flight which can get you there in 2h 42m. In case you are seeking to minimise your carbon footprint the coach is your best bet as it emits only 0.5 - 1.3kg. The ticket price range depends on the travel mode: a coach costs an average of £20, and a flight costs an average of £15.
Distance: 529 km
Compare flight with
| Flight | Most popular Coach |
|---|---|
£160 Average Price | £40 Average Price Cheapest |
5h 42m Average total duration Fastest 2h 42m Onboard + 3h 0m Additional time* | 10h 45m Average total duration 10h 15m Onboard + 30m Additional time* |
1.6 - 3.2kg CO2 emissions | 0.5 - 1.3kg CO2 emissions Lowest |
![]() Most popular airline | ![]() Most popular bus company |
Direct Options | Direct Options |
Additional time: Average total travel duration to departure point, security checks and transfers.
Live departures
Zagreb to Milan flight times
The table below shows live departures for Zagreb to Milan flights for today, Saturday 25 April. You can also manually refresh the results below to see updated flight journeys.
| Provider | Departs | Duration | Arrives | Changes | Tickets |
|---|---|---|---|---|---|
OU652 · OU380 · OU5346 | 10:45 Zagreb Franjo Tuđman Airport | 6h25 | 17:10 Milan Linate Airport | 2 changes | |
OU652 · OU380 · OU5344 | 10:45 Zagreb Franjo Tuđman Airport | 9h25 | 20:10 Milan Linate Airport | 2 changes | |
OS604 · OS527 | 11:25 Zagreb Franjo Tuđman Airport | 7h45 | 19:10 Milan Linate Airport | 1 change | |
OS604 · OS523 | 11:25 Zagreb Franjo Tuđman Airport | 2h45 | 14:10 Milan Linate Airport | 1 change | |
LH1727+ LH7432 | 13:20 Zagreb Franjo Tuđman Airport | 9h50 | 23:10 Milan Malpensa Airport | 1 change | |
AZ7021 · AZ2056 | 14:05 Zagreb Franjo Tuđman Airport | 6h05 | 20:10 Milan Linate Airport | 1 change | |
AZ7021 · AZ2130 | 14:05 Zagreb Franjo Tuđman Airport | 9h05 | 23:10 Milan Linate Airport | 1 change | |
OU384 · OU5344 | 14:05 Zagreb Franjo Tuđman Airport | 6h05 | 20:10 Milan Linate Airport | 1 change | |
OU384 · OU5346 | 14:05 Zagreb Franjo Tuđman Airport | 24h05 | 14:10 Milan Linate Airport | 1 change | |
OU384+ AZ2058 | 14:05 Zagreb Franjo Tuđman Airport | 8h05 | 22:10 Milan Linate Airport | 1 change | |
OU384+ AZ2056 | 14:05 Zagreb Franjo Tuđman Airport | 6h05 | 20:10 Milan Linate Airport | 1 change | |
OU384+ AZ2130 | 14:05 Zagreb Franjo Tuđman Airport | 9h05 | 23:10 Milan Linate Airport | 1 change | |
AZ7021 · AZ2058 | 14:05 Zagreb Franjo Tuđman Airport | 8h05 | 22:10 Milan Linate Airport | 1 change | |
LH1405+ LH5638 | 15:05 Zagreb Franjo Tuđman Airport | 8h05 | 23:10 Milan Malpensa Airport | 1 change | |
LH1405+ LH280 | 15:05 Zagreb Franjo Tuđman Airport | 7h00 | 22:05 Milan Linate Airport | 1 change | |
LH6003+ LH5638 | 17:55 Zagreb Franjo Tuđman Airport | 5h15 | 23:10 Milan Malpensa Airport | 1 change | |
LH6003+ LH280 | 17:55 Zagreb Franjo Tuđman Airport | 4h10 | 22:05 Milan Linate Airport | 1 change | |
OU6660 · OU384+ AZ2032 | 18:00 Zagreb Franjo Tuđman Airport | 20h10 | 14:10 Milan Linate Airport | 2 changes | |
OU6660 · OU384+ AZ2044 | 18:00 Zagreb Franjo Tuđman Airport | 21h10 | 15:10 Milan Linate Airport | 2 changes | |
LX4253+ LX1638 | 18:00 Zagreb Franjo Tuđman Airport | 5h40 | 23:40 Milan Malpensa Airport | 1 change | |
OU6660 · OU384 · OU5346 | 18:00 Zagreb Franjo Tuđman Airport | 20h10 | 14:10 Milan Linate Airport | 2 changes | |
LO614 · LO319 | 18:05 Zagreb Franjo Tuđman Airport | 24h50 | 18:55 Milan Malpensa Airport | 1 change | |
LO614 · LO317 | 18:05 Zagreb Franjo Tuđman Airport | 15h40 | 9:45 Milan Malpensa Airport | 1 change | |
FR 6000 | 21:25 Zagreb Franjo Tuđman Airport | 1h15 | 22:40 Milan Bergamo Orio al Serio Airport | 0 changesdirect | |
OU656 · OU380 · OU5344 | 22:05 Zagreb Franjo Tuđman Airport | 22h05 | 20:10 Milan Linate Airport | 2 changes | |
OU656 · OU380+ AZ2056 | 22:05 Zagreb Franjo Tuđman Airport | 22h05 | 20:10 Milan Linate Airport | 2 changes | |
OU664 · OU384+ AZ2032 | 22:55 Zagreb Franjo Tuđman Airport | 15h15 | 14:10 Milan Linate Airport | 2 changes | |
OU664 · OU384+ AZ2044 | 22:55 Zagreb Franjo Tuđman Airport | 16h15 | 15:10 Milan Linate Airport | 2 changes | |
OU664 · OU384 · OU5344 | 22:55 Zagreb Franjo Tuđman Airport | 21h15 | 20:10 Milan Linate Airport | 2 changes | |
OU664 · OU384 · OU5346 | 22:55 Zagreb Franjo Tuđman Airport | 15h15 | 14:10 Milan Linate Airport | 2 changes | |
LH1407+ LH6904 | 5:55 Zagreb Franjo Tuđman Airport | 3h55 | 9:50 Milan Linate Airport | 1 change | |
FR 6055 | 5:55 Zagreb Franjo Tuđman Airport | 1h15 | 7:10 Milan Bergamo Orio al Serio Airport | 0 changesdirect | |
LH1407 · LH248 | 5:55 Zagreb Franjo Tuđman Airport | 4h40 | 10:35 Milan Malpensa Airport | 1 change | |
LH1731+ LO352 · LO319 | 6:15 Zagreb Franjo Tuđman Airport | 12h40 | 18:55 Milan Malpensa Airport | 2 changes | |
LH1731+ LH1852 | 6:15 Zagreb Franjo Tuđman Airport | 6h45 | 13:00 Milan Linate Airport | 1 change | |
OU384 · OU5346 | 7:30 Zagreb Franjo Tuđman Airport | 6h40 | 14:10 Milan Linate Airport | 1 change | |
AZ7021 · AZ2058 | 7:30 Zagreb Franjo Tuđman Airport | 14h40 | 22:10 Milan Linate Airport | 1 change | |
AZ7021 · AZ2032 | 7:30 Zagreb Franjo Tuđman Airport | 6h40 | 14:10 Milan Linate Airport | 1 change | |
OU384 · OU5344 | 7:30 Zagreb Franjo Tuđman Airport | 12h40 | 20:10 Milan Linate Airport | 1 change | |
AZ7021 · AZ2080 | 7:30 Zagreb Franjo Tuđman Airport | 10h40 | 18:10 Milan Linate Airport | 1 change | |
AZ7021 · AZ2056 | 7:30 Zagreb Franjo Tuđman Airport | 12h40 | 20:10 Milan Linate Airport | 1 change | |
AZ7021 · AZ2044 | 7:30 Zagreb Franjo Tuđman Airport | 7h40 | 15:10 Milan Linate Airport | 1 change | |
OU384+ AZ2044 | 7:30 Zagreb Franjo Tuđman Airport | 7h40 | 15:10 Milan Linate Airport | 1 change | |
AZ7021 · AZ2050 | 7:30 Zagreb Franjo Tuđman Airport | 12h05 | 19:35 Milan Linate Airport | 1 change | |
AZ7021 · AZ2038 | 7:30 Zagreb Franjo Tuđman Airport | 8h40 | 16:10 Milan Linate Airport | 1 change | |
OU384+ AZ2032 | 7:30 Zagreb Franjo Tuđman Airport | 6h40 | 14:10 Milan Linate Airport | 1 change | |
OU384+ AZ2038 | 7:30 Zagreb Franjo Tuđman Airport | 8h40 | 16:10 Milan Linate Airport | 1 change | |
LO4276+ LO380 · LO319 | 7:40 Zagreb Franjo Tuđman Airport | 35h15 | 18:55 Milan Malpensa Airport | 2 changes | |
LO4276+ LO380 · LO317 | 7:40 Zagreb Franjo Tuđman Airport | 26h05 | 9:45 Milan Malpensa Airport | 2 changes | |
LH6007+ LH272 | 7:40 Zagreb Franjo Tuđman Airport | 4h20 | 12:00 Milan Linate Airport | 1 change | |
LO4276+ LO378 · LO317 | 7:40 Zagreb Franjo Tuđman Airport | 26h05 | 9:45 Milan Malpensa Airport | 2 changes | |
LH6007+ LH5636 | 7:40 Zagreb Franjo Tuđman Airport | 6h10 | 13:50 Milan Malpensa Airport | 1 change | |
LO4276+ LO378 · LO319 | 7:40 Zagreb Franjo Tuđman Airport | 35h15 | 18:55 Milan Malpensa Airport | 2 changes | |
OU4436+ AZ453 | 8:15 Zagreb Franjo Tuđman Airport | 12h45 | 21:00 Milan Linate Airport | 1 change | |
LH5989+ LH1852 | 8:15 Zagreb Franjo Tuđman Airport | 4h45 | 13:00 Milan Linate Airport | 1 change | |
LH6001+ LH5636 | 8:45 Zagreb Franjo Tuđman Airport | 5h05 | 13:50 Milan Malpensa Airport | 1 change | |
LH6001+ LH274 | 8:45 Zagreb Franjo Tuđman Airport | 5h55 | 14:40 Milan Linate Airport | 1 change | |
This is the last flight of the day. | |||||
Find all the dates and times for this journey
How far in advance should I book flight tickets from Zagreb to Milan?
Compare prices and tickets Zagreb to Milan by coach or flight
Compare coach and flight prices over the next three weeks. See the best deals at a glance, find the lowest fares, and choose the option that fits your budget.
25 Apr
26 Apr
27 Apr
28 Apr
29 Apr
30 Apr
01 May
02 May
03 May
04 May
05 May
06 May
07 May
08 May
09 May
10 May
11 May
12 May
13 May
14 May
15 May
Why should you book Zagreb to Milan flights with Omio?
Why book with Omio vs Ryanair?
- Compare with other providers: On Omio, you can not only buy tickets for Ryanair, but also compare tickets for the likes of Malta Air, Croatia Airlines, Lufthansa Cityline or Eurowings to find the best option for your trip from Zagreb to Milan.
- Designed for International Travelers: Omio is in your language including 24/7 customer service and offers multiple payment options, including PayPal, credit cards, and bank transfer, in your preferred currency.
- Compare all your options: Omio allows you to compare Ryanair with all available travel options, which are bus and flight to ensure you get the best deal for traveling from Zagreb to Milan.
Why book with Omio over Edreams, Kayak or Skyscanner?
- Compare with other providers: On Omio, you can also compare tickets for the likes of Malta Air, Croatia Airlines, Lufthansa Cityline or Eurowings to find the best option for your trip from Zagreb to Milan.
- Multiple modes of transport: Omio allows you to compare travel options including bus and flight to find the ideal travel option from Zagreb to Milan.
Airlines: Ryanair, Malta Air, Croatia Airlines, Lufthansa Cityline, Eurowings, Lufthansa, Air Serbia, LOT Polish Airlines, Vueling Airlines, Air Dolomiti from Zagreb to MilanFind the best flights between Zagreb to Milan with Omio's travel partners Ryanair, Malta Air, Croatia Airlines, Lufthansa Cityline, Eurowings, Lufthansa, Air Serbia, LOT Polish Airlines, Vueling Airlines, Air Dolomiti from £15. We can find you the best deals, schedules and tickets when comparing and booking the best trip.
Lufthansa Cityline
Lufthansa
Croatia Airlines
Eurowings
Air Serbia
LOT Polish Airlines
Vueling Airlines
Air Dolomiti
Malta Air
Ryanair
FAQs: Zagreb to Milan flights
Find answers to the most common questions about traveling from Zagreb to Milan by flight. From journey times and ticket prices to direct connections, first and last departures, and even whether the route is scenic, our FAQs cover everything you need to plan your trip. Whether you’re looking for the fastest flight, the cheapest option, or tips for making the most of your visit at Milan, this guide helps you travel smarter and with confidence.

popular airports
Important Stations and Airports in Zagreb and Milan
- Free Wi-Fi available throughout the airport.
- Shops available, located in the terminal, including duty-free and local products.
- Parking available, short-term parking costs approximately 1.3€ (10 HRK) per hour.
- Available outside the terminal.
- Elevators, ramps.
- Available throughout the airport.
- Yes
- Lounges available, Business Lounge located in the terminal.
- Located in the arrivals area.
- Bus: 290, 330
- Train: NA
- Metro: NA
- Free Wi-Fi available throughout the airport.
- Shops available in both terminals, including duty-free and fashion brands like Gucci and Prada.
- Parking available at Terminal 1 and Terminal 2, approximately 2.5€ per hour.
- Available outside the terminal.
- Elevators, ramps.
- Available throughout the airport.
- Yes
- Lounges available in Terminal 1, including Sala Montale and Club SEA.
- Located in both terminals, near baggage claim.
- Train: Malpensa Express
- Bus: Terravision, Autostradale, Malpensa Shuttle
- Free Wi-Fi available throughout the airport.
- Shops available, including Duty-Free and WHSmith, located in the departures area.
- Parking available in P1, P2, and P3 lots, approximately 2.5€ per hour.
- Available outside the terminal.
- Ramps, assistance.
- Available throughout the airport.
- Yes
- Lounge available, Sala Leonardo Lounge, access with membership or fee.
- Located in the arrivals area, near baggage claim.
- Bus 73
- Bus X73
- Free Wi-Fi available throughout the airport.
- Shops available, including duty-free and fashion stores, located in the departures area.
- Parking available near the terminal, approximately 3€ per hour.
- Available outside the terminal.
- Elevators, ramps.
- Available throughout the airport.
- Yes
- Lounge available, with access for a fee or membership.
- Located in the arrivals area.
- Bus: Line 1, Line 5
- Train: NA
- Metro: NA
Most popular flights from Zagreb
More options for your journey from Zagreb to Milan
Here are some other resources that might have the information you need



