16€ Find Cheap Flights to Milan – Compare and Save

1 adult
1 adult, Economy, 0 bags

Save 22% or more on flights. Compare deals from all over the web.

Never overpay with our price tracking tools.

Filter searches by price, airline and more to find your best flights.

Everything you should know

Cheapest return fare
30 €
Typical prices: 78 €-165 €
Ryanair
Sat 3.10.Sat 10.10.
CGN - BGY • Direct
Cheapest one-way flight
16 €
Typical prices: 19 €-59 €
Ryanair
Wed 30.9.
CGN - BGY • Direct
Top airlines
Most flights • 90 per week
Best reviews • 6,9 score
Airline reviews
Airline reviews
+1
+1
Airline reviews
Airline reviews
+1
Top routes
Insights
Insights
Insights
Insights
When to travel
Cheapest • 17% price drop
Most popular
Good to know
Good to know
+1
+1
Good to know
Good to know
+1
Start a new search
KAYAK searches hundreds of sites at once to find you the best travel deals.
We hope you love your trip to Milan!
Flight Deals
Booking Insights
Flight Deals

Cheap Flights to Milan

 
Discover the best prices for you by selecting your travel dates on KAYAK.

Recent return flight deals to Milan

Sat, 3. Oct - Sat, 10. Oct
Ryanair Logo
19:15 - 20:45CGN  Cologne Köln/Bonn-BGY Bergamo Orio Al Serio
1h 30mdirect
Ryanair Logo
6:05 - 7:30BGY  Bergamo Orio Al Serio-CGN Cologne Köln/Bonn
1h 25mdirect
30 €Ryanair
Wed, 7. Oct - Tue, 13. Oct
Ryanair Logo
5:45 - 7:15CGN  Cologne Köln/Bonn-BGY Bergamo Orio Al Serio
1h 30mdirect
Ryanair Logo
10:05 - 11:30BGY  Bergamo Orio Al Serio-CGN Cologne Köln/Bonn
1h 25mdirect
30 €Ryanair
Fri, 9. Oct - Mon, 12. Oct
easyJet Logo
21:00 - 22:30DUS  Duesseldorf Intl-MXP Milan Malpensa
1h 30mdirect
easyJet Logo
6:50 - 8:25MXP  Milan Malpensa-DUS Duesseldorf Intl
1h 35mdirect
61 €easyJet
Sun, 4. Oct - Mon, 12. Oct
easyJet Logo
8:55 - 10:25DUS  Duesseldorf Intl-MXP Milan Malpensa
1h 30mdirect
easyJet Logo
6:50 - 8:25MXP  Milan Malpensa-DUS Duesseldorf Intl
1h 35mdirect
62 €easyJet
Tue, 6. Oct - Wed, 7. Oct
Multiple Airlines Logo
9:35 - 18:30CGN  Cologne Köln/Bonn-BGY Bergamo Orio Al Serio
8h 55m1 stop Manchester
Multiple Airlines Logo
7:40 - 9:05BGY  Bergamo Orio Al Serio-CGN Cologne Köln/Bonn
1h 25mdirect
64 €Multiple Airlines
Tue, 6. Oct - Sat, 10. Oct
Multiple Airlines Logo
9:35 - 18:30CGN  Cologne Köln/Bonn-BGY Bergamo Orio Al Serio
8h 55m1 stop Manchester
Multiple Airlines Logo
6:05 - 7:30BGY  Bergamo Orio Al Serio-CGN Cologne Köln/Bonn
1h 25mdirect
65 €Multiple Airlines
Mon, 21. Sep - Thu, 24. Sep
easyJet Logo
21:00 - 22:30DUS  Duesseldorf Intl-MXP Milan Malpensa
1h 30mdirect
easyJet Logo
7:00 - 8:35MXP  Milan Malpensa-DUS Duesseldorf Intl
1h 35mdirect
82 €easyJet
Mon, 21. Sep - Mon, 28. Sep
Eurowings Logo
6:20 - 7:40CGN  Cologne Köln/Bonn-MXP Milan Malpensa
1h 20mdirect
Eurowings Logo
8:30 - 9:55MXP  Milan Malpensa-CGN Cologne Köln/Bonn
1h 25mdirect
98 €Eurowings
Sun, 11. Oct - Wed, 14. Oct
Eurowings Logo
15:40 - 17:05CGN  Cologne Köln/Bonn-MXP Milan Malpensa
1h 25mdirect
Eurowings Logo
8:30 - 9:55MXP  Milan Malpensa-CGN Cologne Köln/Bonn
1h 25mdirect
102 €Eurowings
Fri, 25. Sep - Sun, 27. Sep
easyJet Logo
21:00 - 22:30DUS  Duesseldorf Intl-MXP Milan Malpensa
1h 30mdirect
easyJet Logo
6:45 - 8:20MXP  Milan Malpensa-DUS Duesseldorf Intl
1h 35mdirect
158 €easyJet
Booking Insights

KAYAK's insights & trends for flights to Milan

Get data-powered insights and trends into flights to Milan to help you find the cheapest flights, the best time to fly and much more.

What is the cheapest flight to Milan?

In the last 5 days, the cheapest flight deal to Milan was found on the route from Cologne, at 30 € return. The most popular connection is from Düsseldorf to Milan, while KAYAK users have found return deals for as low as 61 € in the last 5 days.

How much is a flight to Milan?

A flight to Milan costs 141 € on average. The cheapest price found on KAYAK in the last 2 weeks cost 17 € and departed from Dortmund. The most popular routes on KAYAK are Düsseldorf to Milan which costs 182 € on average, and Hamburg to Milan, which costs 209 € on average.

What is the cheapest day to fly to Milan?

Based on KAYAK data, the cheapest day to fly to Milan is Thursday where round-trip tickets can be as cheap as 143 €. On the other hand, the most expensive day to fly is Sunday, where round-trip prices are 156 € on average.

What is the cheapest month to fly to Milan?

The cheapest month for flights to Milan is January, where tickets cost 111 € on average for return flights. On the other hand, the most expensive months are April and May, where the average cost of tickets from Germany is 158 € and 154 € respectively. For one-way flights, the best month to travel is August with an average price of 90 €.

What is the cheapest time of day to fly to Milan?

The cheapest time of day to fly to Milan is generally at night, when round-trip flights cost 117 € on average. The most expensive time of day to fly to Milan is generally in the evening, which is peak travel time and where the average cost of a ticket is 183 €.

What is a good deal for flights to Milan?

If you’re looking for cheap airfare to Milan, 25% of our users found tickets to Milan for the following prices or less: From Düsseldorf Weeze Airport 53 € return, from Karlsruhe 55 € return, from Dortmund 59 € return.

How far in advance should I book a flight to Milan?

To get a below average price, you should book around 1 week before departure. For the absolute cheapest price, our data suggests you should book 24 weeks before departure.

Which is the cheapest airport to fly into in Milan?

Prices will differ depending on the departure airport, but generally, the cheapest airport to fly to in Milan is Bergamo Orio Al Serio Airport (BGY), with an average flight price of 101 €.

Good to know – Book Cheap Milan Plane Tickets

Low season

January

Cheapest flight

16 €
Best time to beat the crowds (26% less expensive on average)
Most popular time to fly (1% more expensive on average)
Flight from Cologne to Bergamo

When to book flights to Milan

Are your dates flexible? Find out the best times to travel to Milan based on our flight data from the last year. Discover the cheapest month and even day to fly.
Estimated return price

FAQs - booking Milan flights

  • What is the cheapest flight to Milan?

    In the last 5 days, the cheapest flight deal to Milan was found on the route from Cologne, at 30 € return. The most popular connection is from Düsseldorf to Milan, while KAYAK users have found return deals for as low as 61 € in the last 5 days.

  • Which Milan airport is closest to central Milan?

    7 km away from Milan’s city centre, Milan Linate Airport is the closest of the 2 major airports in the city. There are 40 km separating Milan city centre to Milan Malpensa Airport.

  • How much is a flight to Milan?

    On average, a flight to Milan costs 141 €. The cheapest price found on KAYAK in the last 2 weeks cost 17 € and departed from Dortmund Airport.

  • How does KAYAK find such low prices on flights to Milan?

    KAYAK is a travel search engine. That means we look across the web to find the best prices we can find for our users. With over 2 billion flight queries processed yearly, we are able to display a variety of prices and options on flights to Milan.

  • How does KAYAK's flight Price Forecast tool help me choose the right time to buy my flight ticket to Milan?

    KAYAK’s flight Price Forecast tool uses historical data to determine whether the price for a flight to Milan is likely to change within 7 days, so travellers know whether to wait or book now.

  • What is the Hacker Fare option on flights to Milan?

    Hacker Fares allow you to combine one-way tickets in order to save you money over a traditional round-trip ticket. You could then fly to Milan with an airline and back with another airline.

  • What is KAYAK's "flexible dates" feature and why should I care when looking for a flight to Milan?

    Sometimes travel dates aren't set in stone. If your preferred travel dates have some wiggle room, flexible dates will show you all the options when flying to Milan up to 3 days before/after your preferred dates. You can then pick the flights that suit you best.

Top tips for finding cheap flights to Milan

  • Looking for a cheap flight? 25% of our users found flights on this route for 79 € or less one-way and 127 € or less round-trip.
  • Enter your preferred departure airport and travel dates into the search form above to unlock the latest Milan flight deals.

Reviews of the top 5 airlines flying to Milan

 
Need help choosing which airline to fly with to Milan? KAYAK airline reviews give an overall score for each airline based on loads of factors, including comfort, boarding, in-flight entertainment and more, to make your decision easier. See airline scores according to verified KAYAK customer reviews.
6,9
RyanairOverall score based on 5489 reviews
6,5Comfort
6,0Food
5,7Entertainment
7,5Crew
6,7Boarding
Airline reviews

The plane had only a few passengers, we got lucky. The crew was visibly inexperienced

6,0 GoodFrancesco, Dec 2025
Read more Ryanair reviews

The plane had only a few passengers, we got lucky. The crew was visibly inexperienced

They lost a bag and now our vacation is ruined

Flight details on public information screen were misleading and wrong.

How terrible! Extremely bad! I can not even wait for 5 minutes, because the Berlin airport does not work in the security facilities and can handle people. No communication, although we were assured by about 50 travelers that the airline is informed and is waiting for us.

When having difficulty with the online check in process, I was forced to pay a huge fee for the check in desk to assist me with getting a boarding pass. Ridiculous!

The system of checkin by online only not good at all.. Because not everyone knows how to to do it and when the people go the airport without checking online it charge him, this really unfair 55 Euro this too much for nothing.. Thanks

Flight was delayed which happens but walking 15 mins to one gate to be then told it’s now changed to one 15 mins back then other way was frustrating

50 minute of delay on a flight scheduled after 22pm is really annoying. This was even the only flight departing from Frankfurt Hahn on that evening so the delay was inexcusable

The usual average Ryanair flight, but we landed 20 min before due time, which was very good.

Flight was delayed due to weather so not much Ryanair could do about that - otherwise it was very efficient and smooth

The flight was delayed by over an hour which seriously disrupted my plans in Milan.

They lost my luggage. They don’t even know what happened to it at this point. They think it’s still in the departure city.

It was good; the only down side is that once you get to the airport everything is self service, there is no one assisting. I felt like I was working while I was on vacation during the check in process and dropping off the luggage. Really uncertain on what the airlines use payroll nowadays.

We were bumped despite seats existing on flight While checkin attendants were helpful Easyjet management was not. Only after threats were we allowed on plane at last minute. The online help desk was useless and waste of time (over an hour of useless chats)

Nice to fly out of Orly smaller easier to navigate airport. Being able to receive boarding pass well in advance of trip was comforting to know all travel was in order.

sadly in Basel & Naples- no jetway we had to climb up and down stairs with our max size carry-on luggage, which was not fun!!!

We boarded and then sat on the tarmac for an hour….probably not E Jets fault. But the gentleman that checked us in and took our luggage was exceptionally friendly and calming for early morning/ confused passengers. As always, it’s the people that make or break an experience, right?

They cancelled my flight and we had to fend for ourselves to reschedule another flight. There was no staff to help all the canceled guest. Poor communication and staff. I attempted to reschedule via Kayak and I asked their staff that it looked as it was available. The guy behind the counter just told us to go online..

Nothing! The service was excellent for accessibly challenged passengers, Used lift and all support personnel very helpful. Will fly again.

Bohužel zpoždění let o více než 6 hod, způsobil, že jsme nestihli další let.

Never made it to Lufthansa because of Air Canadas negligence.

Boarding and flight update was fantastic as I experienced about a 10-15 delayed for both flights. The food served onboard was great; the service of the flight attendants was excellent.

Complete mess. Our reservation was mistakenly cancelled. After almost missing the connection and walking all over the Munich airport, the Service desk got involved and we were run to our flight. Not all 4 of us in Business and not seated together as originally booked. This was the worst treatment I have ever had. And I travel a lot. 1K million miler.

There is more space in this economy seat. It felt like a better layout, not so cramped.

The staff was not at pleasant as those on the first leg of our trip.

Crew was excellent. Sat us together after the airline changed our seats. This was the smaller plane/shorter flight so no entertainment or food.

Boarding was one hour late. Gate notification was incorrect (notification said gate 17, actual was gate 14). Took shuttle bus to board the plane. Late arrival of plane at Turin impacted travel arrangements to the event.

Seats on the A320 were more comfortable than the A330 I took from RSW to Frankfurt

A short flight. What was offered was appropriate Friendly staff. Pleasant

The flight was delayed. Don't recall much else, as the flight was short and I slept through most of it.

Staff was nice but seat is not what I expected

Our flight was canceled when we landed in Rome to go to Boston along with three other flight cancellations. They couldn’t get us out that day and told us we would fly Delta the following day. They then told us to look for a desk in the airport to get a voucher for the hotel, transportation and meals. Nobody knew where this desk was. We searched around the airport around the ITA area and nobody could lead us to the desk. Once we found the desk, the line was so long. It took seven hours of waiting in line to get our vouchers to get to the hotel transportation and meals. ITA could do a better job in helping stranded passengers get to their hotel instead of waiting in line for seven hours.

What occurred during this flight was far beyond an ordinary inconvenience or dissatisfaction with the onboard service. There were multiple failures involving the aircraft’s passenger-seat systems, the ability to summon cabin crew, sanitation, cabin crew responsiveness, food and beverage service, and the overall standard of passenger care. The circumstances were particularly serious because I am diabetic, and during the flight I experienced a situation in which I needed assistance while essential passenger-control functions at our seats were not working. I am requesting that ITA Airways treat this as a formal complaint requiring individual investigation, rather than responding with a generic customer-service apology. 1. All three seats had significant equipment failures All three seats assigned to my family had significant equipment problems. Seat 46F: The entertainment screen was completely non-functional for the entire flight. Seats 46G and 46H: The screens themselves displayed content, but the following controls did not function: Cabin-light control Flight-attendant call button Flight-tracker button These were not merely entertainment-system failures. The malfunctioning controls affected our ability to control the lighting at our seats and, more importantly, our ability to summon a flight attendant when assistance was required. I specifically request that ITA investigate the maintenance records for the aircraft and these specific seats and determine whether these defects were known before departure, reported during the flight, or documented by the cabin crew. 2. The defective equipment directly affected my ability to manage my diabetes I am diabetic and require insulin. Because the cabin-light controls at our seats were not functioning, I was unable to properly illuminate my seating area when I needed to administer my insulin during the flight. More seriously, when my blood sugar became low, I was unable to use the attendant-call button to request assistance because the button was not functioning. This transformed what might ordinarily be considered an entertainment-system problem into a much more serious passenger-care issue. I was on a long transatlantic flight, unable to properly illuminate my seating area when necessary and unable to summon a member of the cabin crew through the designated call system. 3. My daughter repeatedly attempted to obtain assistance when my blood sugar was low When my blood sugar became low, I needed juice or another rapidly available source of carbohydrate. Because I could not use the attendant-call button, I sent my daughter to ask the cabin crew for juice. She made multiple attempts to obtain assistance. Despite these repeated attempts, the cabin crew did not appropriately respond to her request. After multiple attempts from my daughter, the curtain was closed. I ultimately had to obtain candy from passengers seated nearby because I could not obtain the assistance I was seeking from the cabin crew. I consider this one of the most serious incidents on the flight. I am not suggesting that cabin crew were required to provide medical treatment. However, when a passenger is seeking assistance because of low blood sugar—particularly when that passenger’s designated call button is not functioning—I believe a reasonable standard of passenger care requires the request to be acknowledged and handled appropriately. I therefore request that ITA investigate this incident specifically, including: Which crew members were assigned to our cabin/section; Whether any crew member observed my daughter requesting assistance; Whether any crew report was made concerning this incident; Whether the crew knew that the attendant-call buttons at our seats were not functioning; and What ITA’s procedures require when a passenger reports that they are experiencing low blood sugar or otherwise needs assistance. 4. The circumstances caused significant distress and interfered with my ability to manage my condition The combination of the defective lighting controls, inability to use the attendant-call system, and failure to obtain timely assistance caused me significant distress. I was particularly distressed because I was unable to properly manage my medical needs in the manner I normally would during a long flight. My blood sugar subsequently remained elevated for an extended period. I believe the prolonged stress and circumstances surrounding this incident contributed to the difficulty I experienced managing my blood sugar during the flight. I am documenting this because I do not want ITA to reduce this complaint to a complaint about an entertainment screen. The equipment failures directly affected my ability to manage my medical needs and obtain assistance. 5. Unacceptable restroom conditions The condition of the aircraft’s restrooms was also unacceptable. During the flight: One restroom was completely out of service for the entire flight. The remaining restrooms were ext

The cleanliness is the business class continues to disappoint. There was food on the floor when I boarded.

The business class seat would not recline. Not acceptable for an airline and airplane that is relatively new and a flight that was over 12 hours. Very bad experience.

Flew Premium Economy. The seats were comfortable and tilted back far enough to sleep. Food was okay and service friendly and efficient. We bought tickets through Kayak partner Underpricer and the price was good.

Lufthansa seats were much more comfortable than United. While they had about the same video selection, Lufthansa didn't put advertisements in with the movies like United did. And the Lufthansa food was much better than United.

I liked nothing. Communication to passengers was poor to non-existent. No sense of urgency in providing information from gate changes, baggage drops, and cancelled flights (which happened with no assistance available). This airline is a joke.

The landing was catastrophic. I was very scared. I thought it were my last lminues. Pilotes should be more experienced

We made the boarding and then waited inside 40minutes before taking off The plane was too full It was probably the worst flight of my life in terms of comfort. I was in the central seat, and on my right i had a very big person who was occupying part of my seat since he did not fit in just one. I think in these cases the staff should notice and do something about it. I checked if there were available seats by myself, but it was all full. Maybe in business class there were still available seats though.

Good, efficient flights both ways. Didn’t have food and no entertainment so can’t comment on those. Friendly staff that let me move to a row with no one booked.

My flight was delayed and my second flight missed despite a three hour connection in Düsseldorf. My luggage was lost and it took three hours to recover which was actually unfortunately very much barely possible. I needed to rebook a flight that was three times the original cost of the original flight which now I need to go back and recover from the airline. Terrible experience,

Nice to have reclining seats for a change and great to have internet access

Tivat airport really needs to up its game W Eurowings needs to provide support at luggage collection

Delay after delay: no information besides what my Kayak app provided was provided about the delays. The plane was at the gate. Also, the gate, 100A, was incredibly warm, and the sun was beaming in. Boarding was disorganized with no groups announced.

Kayak - EDreams - Eurowings need to define clearer the hand luggage terms. I asked for add. hang luggage got charged by Eurowings for having add. hand luggage that was not included in my booking. I travel alot! I know the size dimensions never paid twice for hand luggage and cannot chase Edreams or put Eurowings in the wrong. Also there was severe delays on this flight. Issue getting bus on arrival and missed connections. Unfortunate will not use Eurowings

We checked in 4 luggage and only got 3 back & lost our 4th luggage. Our flight was from berlin sept 22. We arrived Copenhagen but only received 3 luggage. Missing 1 still 24 hrs after our arrival and our Cruise will be leaving tomorrow 9/24/2023. This is the second time that our luggage gets lost/delayed in Copenhagen

No food on plane.. flights scheduled 55 min..everything is very expensive on aeroport

Smallest seat I have ever seen. And they had a label with more Legroom but in fact where really tiny.

I was held-up at boarding by rude employee who insisted that I had to wait until all other passengers had boarded the lane before issuing me a boarding pass so I can board the plane. I could not check-in earlier and get a boarding pass since I had flown directly from Dusseldorf.

Travelling to a place near Milan?

Book flights to Milan if you plan to visit one of these locations
Stresa
Livigno
Iseo
Levanto
Bellagio
Brescia
Menaggio
Baveno
Saronno
Varenna
Lecco
Monza
Porlezza
Bormio
Domodossola
Cernobbio
Assago
Asti
Lainate
Rho

More options for your flight to Milan