Milan Airports Compared: MXP vs BGY vs LIN

Milan’s three airports are a lesson in geography: Malpensa (MXP) is the long-haul hub 50 km northwest — 103 recorded destinations across roughly 68 carriers in our snapshot — Bergamo (BGY) is the low-cost field 45 km east with 80 recorded destinations on about 7 carriers, and Linate (LIN) is the city airport minutes from the centre with 32 recorded destinations on about 17 carriers. The Malpensa Express, the new M4 metro and the Bergamo bus decide how much each fare saving is worth.

Milan Airports Compared: MXP vs BGY vs LIN: questions people actually ask

How many airports does Milan have?

Three: Malpensa (MXP) northwest for long-haul, Bergamo (BGY) northeast for low-cost, and Linate (LIN) close to the city for domestic and European shuttles.

How do I get from Malpensa to central Milan?

The Malpensa Express train runs to Cadorna and Milano Centrale in 37–52 minutes for €13–15; buses cost about €10; a taxi runs €90–110.

Is Bergamo airport actually in Milan?

No — it is 45 km northeast in Bergamo. Buses reach Milano Centrale in about 50 minutes for around €10, which is the transfer cost its low fares must beat.

How do I get from Linate airport to Milan?

The M4 metro runs from the terminal to San Babila in about 12 minutes on an ordinary €2.20-ish ticket — the fastest airport-to-centre ride in Milan. A taxi is €25–40.

MXP — Malpensa: the intercontinental gateway

Malpensa carries Milan’s long-haul map: our route database records around 103 destinations served by roughly 68 carriers — the intercontinental arrivals, the SkyTeam and Star hub traffic, and Italy’s widest European spread. It sits 50 km northwest of the city, split between Terminal 1 (most carriers) and Terminal 2 (low-cost and EasyJet’s base).

The Malpensa Express is the clean transfer: trains from Terminal 1 (and a T2 stop) reach Cadorna and Milano Centrale in 37–52 minutes at €13–15. Ordinary Regionale trains from T2 cost less with more stops; buses (€10-ish, 50–60 minutes) undercut the train when the motorway is kind. A taxi runs €90–110 — for groups of four with luggage it finally starts to make sense.

Choose MXP when: flying long-haul, on a full-service carrier, or anywhere in northern Italy by onward train — Milano Centrale is one connected ride away.

BGY — Bergamo: the low-cost field that is not in Milan

“Milan Bergamo” is 45 km northeast in Bergamo proper: our snapshot records 80 destinations on about 7 carriers — a Ryanair and Wizz Air fortress with a genuinely wide European map for the price of one airport’s focus. It is the cheapest way to reach Milan from much of Europe, and it prices like it.

The Orio Shuttle and competing buses run to Milano Centrale in about 50 minutes for roughly €10 each way; a taxi to the city runs €90-plus. The honest framing: BGY is a Milan airport the way Beauvais is a Paris airport — book it when the saving beats two bus rides and the schedule is forgiving, and never when a same-day connection at another airport follows.

Choose BGY when: the fare saving is real, your destination is the east side or onward from Centrale, and nobody in the party is in a hurry.

LIN — Linate: the city airport

Linate sits practically inside Milan — 7 km east — and our snapshot records 32 destinations on about 17 carriers: Italian domestic shuttles, a tight European business map (Paris, London, Frankfurt, Amsterdam), and full-service carriers. It is the airport Italians use for the Rome shuttle and the meeting that ends at six.

Since the M4 metro extension opened, Linate is the best-connected airport in Italy proportionally: the blue M4 line runs from the terminal to San Babila in about 12 minutes on an ordinary ATM ticket (€2.20-ish) — no airport supplement, no train ticket, just the metro. Taxis run €25–40 depending on destination. The trade-off: the route map is narrow, so most leisure itineraries will not find their city here.

Choose LIN when: your route is actually served, your hotel is east or central, and speed beats fare breadth.

MXP, BGY or LIN: how to decide

The three airports sit at three corners of a triangle around the city, 45–60 minutes apart by road — a self-connect between any two of them is a half-day error. The arithmetic that matters: LIN is worth paying for when your route exists (the M4 ride beats everything), MXP is the rational default for long-haul and full-service Europe, and BGY wins only when its fare beats the MXP-or-LIN alternative by more than the bus fare and an hour of your day.

Our recorded counts (MXP 103, BGY 80, LIN 32) outline the network split; the search form prices your dates — and the transfer gets weighed against your hotel, not the city in the abstract.

Related pages

Book the trip

Flights, transfers and cars for Milan.