Itineraries

Milan Layover Guide: What to See in 6 to 12 Hours (2026)

Milan Duomo facade with traveler and small suitcase in foreground morning light
Photo by Lauren Cuddy on Pexels

The honest rule on building a Milan layover itinerary is that the airport you land at matters more than the hours on your boarding pass. A six-hour gap at Linate is a lazy lunch near the Duomo. The same six hours at Malpensa is a stressed jog with a return train you’ll watch like a hawk. I’ve done this trip a dozen ways — once with a winter coat and a roll-aboard in tow, once at 5am with a baby carrier — and the calculus barely changes. Subtract two hours for the round trip from MXP or BGY (one hour at LIN), subtract another two for re-check and security, and whatever’s left is your real Milan time. Anything under five hours total at Malpensa, I’d skip the city. Anything over seven at Linate, I’d be annoyed if you didn’t go in.

Below is what to do during a Milan layover for the three realistic scenarios — six, eight, and twelve hours — plus where to dump your bag, where to eat without getting fleeced, and the small mistakes that turn a clever stopover into a missed flight.

Milan Duomo facade with traveler and small suitcase in foreground morning light

How short is too short — by airport

Milan has three airports and they’re not interchangeable. The minimum viable Milan stopover varies by 90 minutes depending on which one your flight uses.

Malpensa (MXP) is the long-haul hub, 50 km northwest of the city. The Malpensa Express takes about 51 minutes to Milano Centrale. With ticket purchase, walking to the platform, the ride itself, and the return cushion, you’re burning a minimum of 2 hours 45 minutes on transit alone. My personal floor for leaving MXP is six hours of total layover, and only if you’re already through immigration on a Schengen-to-Schengen connection. If you’re arriving from outside Schengen and have to clear passport control on the way in and out, push the floor to seven.

Linate (LIN) is the easy one. Since the M4 metro opened, you’re at San Babila — three minutes from the Duomo — in 12 minutes for €2.20. Total round-trip transit cost: €4.40. Total round-trip transit time: about 35 minutes including walks. A four-hour Linate layover gives you usable time in town. Five hours and you’ve got a real visit. This is the airport that makes a Milan layover plan genuinely worth executing.

Bergamo Orio al Serio (BGY) is the budget airline airport, 45 km east. The Terravision and Orio Shuttle buses run to Milano Centrale every 20-30 minutes, take about 50 minutes, and cost €5-12 one-way depending on the operator and how far ahead you book. Functionally similar to Malpensa in terms of time budget, but the bus rather than train means you’re at the mercy of A4 traffic. My floor for leaving BGY is seven hours, and I’d rather have eight.

Airport-to-city transport, with the real numbers

The single biggest variable in any Milan layover itinerary is how you handle the transfer. Get this wrong and you’ve wasted your entire layover staring at the train station ceiling.

From Malpensa

The Malpensa Express is the only sensible option unless you’re traveling at 2am. Trains run every 30 minutes between roughly 4:57am and 11:27pm, with two destinations — Milano Centrale (51 min) and Milano Cadorna (43 min). One-way fare is €15 for adults, €7.50 for kids 4-13. Same-day return purchased at the ticket office is €25, which is what I always buy because it removes the “did I tap right?” anxiety on the way back. Buy at the Trenord counter in arrivals (Terminal 1 or Terminal 2), or at the machines if the line is long. The trains are clean, the WiFi is unreliable, and you should sit on the right going in for the marginally less depressing view.

The Malpensa Shuttle bus exists, costs less (€10 one-way, €16 return), and takes 50-60 minutes when traffic cooperates. It rarely does between 4pm and 7pm. I take it only for very early or very late flights when the train isn’t running.

Taxis from MXP to central Milan are a fixed €110. For a solo traveler this is silly. For a family of four with a tight schedule, it can be the right call.

From Linate

Take the M4 metro. Buy the €2.20 single ticket from the machine or contactless-tap your card at the gate (the ATM system accepts Apple Pay and contactless credit cards directly — no app needed). Linate Aeroporto is the eastern terminus of the line. Twelve minutes later you’re at San Babila in the dead center of Milan. The line runs 6am to 12:30am. Returning, you can’t get it wrong — every train on M4 from San Babila heading east ends at the airport.

If you’re moving on to the Duomo, walk it from San Babila (4 minutes). If you’re heading to Milano Centrale to stash a bag first, change to M1 at San Babila and ride to Duomo, then change to M3 — or just take the M4 to Tricolore and switch. For more on the metro network, see my Milan transport guide.

From Bergamo

The bus stop is directly outside arrivals — you’ll see the lineup of Terravision, Orio Shuttle, Autostradale, and FlixBus coaches. All four go to Milano Centrale. Booking online a day ahead drops Terravision to €5-7 one-way. Walk-up tickets from the operators’ kiosks in the arrivals hall typically run €10-12. The trip takes 50 minutes in good traffic, easily 75 if there’s an accident on the A4. Buses depart every 20-30 minutes from about 12:10am to 11:30pm.

I almost always pick Terravision out of habit, but Orio Shuttle has slightly nicer coaches. The bus drops you on the east side of Milano Centrale at Piazza IV Novembre — walk through the station to the metro for M2 or M3.

Bag drop: where to stash the carry-on

Walking around Milan with luggage is a losing proposition. The cobbles around the Duomo eat wheels, and most restaurants don’t have anywhere to put a bag. Drop it first.

Kibag at Milano Centrale is the official left-luggage office on the ground floor in the shopping gallery (follow the “Deposito Bagagli” signs from the main hall — it’s near track 21). It runs about €6 for the first 5 hours, then €1/hour up to 12 hours, capped around €12 for the day. Open 6am to 11pm. Lines can be brutal between 11am and 2pm — I’ve waited 25 minutes on a Saturday. Bring patience.

Radical Storage is the network I default to. You book a slot online (radicalstorage.com), pick a shop or hotel near where you actually want to be, and pay a flat €5 per bag for the day. They have locations within a block of the Duomo, near Brera, and at Centrale. The bag goes behind a counter — usually a phone shop, a café, or a small hotel reception — and you get a code. Much faster than Kibag if Kibag has a queue.

Bounce and Nannybag are similar networks, with rates from €1.95-€2.50 per day. Coverage is patchier than Radical’s.

Malpensa airport itself has a left-luggage office in Terminal 1, ground floor, at €4.50 per piece per day. Useful if you only want to ditch a checked bag while you wander Terminal 2 or the airport perimeter, but pointless if you’re heading into the city — by the time you’ve queued, you could have been on the train.

Milano Centrale station interior, traveler at left luggage counter with backpack

The six-hour layover: a tight, doable plan

Six hours, landing at Linate or MXP, here’s how I’d spend it. I’ll assume MXP because it’s the harder case — at Linate you have an extra 80 minutes to play with.

Hour 0:00 — landing. Walk briskly. Use the e-passport gate if you’re eligible. Skip the bathroom in arrivals; better ones at Centrale.

0:30 — train ticket and platform. Buy same-day return at the Trenord counter (€25). The Malpensa Express platform is signposted from arrivals. Catch whichever train leaves first.

1:25 — Milano Centrale. Drop your bag at Kibag or walk one block north to a Radical Storage point.

1:45 — metro M3 yellow line to Duomo. Two stops, four minutes. Tap your contactless card at the gate.

2:00 — Piazza del Duomo. You’re standing in front of the cathedral. Walk the front, walk the south flank, step into the Galleria Vittorio Emanuele II through the triumphal arch entry. Five minutes is plenty for the mosaic floor and the bull. Out the north side puts you at La Scala. Loop back to the Duomo via the small streets behind the Galleria.

2:45 — quick lunch. Luini for a fried panzerotto (€3.50, cash) is the most efficient option. It’s around the corner on Via Santa Radegonda. Eat it standing up like the locals.

3:15 — Duomo interior or rooftop. With a pre-booked Fast Track ticket (€22 for the rooftop by elevator), you skip the line and are up top in ten minutes. Without one, expect a 30-minute queue. On a six-hour layover I usually skip the rooftop and do just the interior (€10) — the line moves faster and you still get the marble and stained glass.

4:00 — back to Centrale. Metro M3 from Duomo, two stops, four minutes. Pick up bag. Be on the platform for the Malpensa Express by 4:15.

4:25 — train departs. You’re at MXP by 5:16. Check-in cutoff for most flights is 60 minutes before. Tight but doable. Add 10-15 minutes for non-Schengen passport control on departure.

The hard cutoff to remember: your return train from Centrale must leave at least two hours before your departure. Build the layover backwards from that train. If your flight leaves at 6pm, your latest train is 4pm, your latest moment to leave the Duomo area is 3:45.

Eight hours: enough to actually enjoy it

An eight-hour Milan stopover changes the math. From MXP you’ve got roughly 3.5 hours of genuine city time, which is what I’d consider the minimum for “I saw Milan” rather than “I saw the Duomo.”

Same opening sequence — train, bag drop, metro to Duomo. Then deviate.

Do the Duomo interior plus rooftop with a pre-booked ticket — give it 90 minutes total. Walk through the Galleria to La Scala (skip the museum unless you’re an opera person, just look at the facade). From La Scala, head north on Via Verdi into Brera. This is the neighborhood I’d push any short-stay visitor toward — narrow streets, art students, none of the tour-group churn around the Duomo. The Pinacoteca di Brera (€15, last entry 6:40pm) holds Raphael’s Marriage of the Virgin and Caravaggio’s Supper at Emmaus and is wonderfully under-visited. An hour inside is enough.

If you’re not a museum person, walk a loop: Via Brera north to Via dell’Orso, west to Via Madonnina, south to the Foro Buonaparte. You’ll pass three or four bars that look exactly like the version of Milan you want to remember.

Late afternoon, find a café in Brera and sit down for a proper aperitivo — campari spritz and a plate of snacks for €10-12. I’ve covered favorites in my Milan aperitivo guide. Then back to Centrale via M2 from Lanza.

For deeper itineraries that build on this base, my 2 days in Milan itinerary picks up where the eight-hour plan leaves off.

Galleria Vittorio Emanuele II glass dome from below with afternoon shoppers

Twelve hours: the city without rush

Twelve hours is a full half-day. The math finally tips comfortably in your favor: roughly six and a half hours in the city. This is enough for the Duomo and rooftop, lunch, a museum, a neighborhood walk, and an aperitivo before heading back.

My twelve-hour template:

  1. Bag drop at Centrale — 30 minutes from landing.
  2. Duomo interior + rooftop with a Fast Track ticket — 9:30-11am.
  3. Galleria + Piazza Mercanti walk — 11-11:45am.
  4. Lunch at Trattoria Milanese (Via Santa Marta) for risotto alla milanese and cotoletta, about €35 — 12-1:30pm. Book ahead.
  5. Castello Sforzesco and Parco Sempione walk-through — 1:45-3pm. The castle courtyards are free; the museums are €5 and skippable on a layover.
  6. Pinacoteca di Brera or a Brera neighborhood walk — 3-4:30pm.
  7. Aperitivo in Brera or Navigli — 4:45-5:45pm.
  8. Back to Centrale by 6:15pm, on the train by 6:30.

If you have twelve hours from Linate, replace the Castello segment with a quick metro hop to the Navigli canals — the M2 to Porta Genova drops you a block from the water. It’s the prettiest district in Milan and one most short-stay visitors miss. My things to do in Milan page goes deeper on alternatives.

Where to eat without burning your buffer

A layover meal needs to be fast, walkable from the Duomo or Centrale, and not a tourist trap. Five places I rotate through:

  • Luini — Via Santa Radegonda 16, two minutes from the Duomo. Fried panzerotti for €3.50, cash preferred. Eat standing on the street. The line moves in 5 minutes.
  • Princi — multiple locations including Piazza XXV Aprile near Garibaldi. Bakery counter with focaccia, slabs of pizza, and excellent coffee for €8-12 total. Fast and properly Milanese.
  • Spontini — Via Santa Radegonda 11. The thick-crust Milanese pizza slice (€6) that locals actually eat. Counter service, fast.
  • Trattoria Milanese — Via Santa Marta 11. Real sit-down lunch, €30-40 per person. Book ahead. Worth it on a longer layover for proper risotto giallo.
  • Pasticceria Marchesi — Via Santa Maria alla Porta 11 or inside the Galleria. Stand at the bar for a perfect espresso (€1.20) and a small pastry. Treat the Galleria branch as a five-minute reset, not a meal.

What to avoid: anything with a multilingual menu posted outside, anything called “Bar Duomo” or “Caffè Centrale,” and anyone trying to hand you a flyer in Piazza del Duomo. My full Milan food guide has the longer list.

Layover survival, the stuff guidebooks skip

A few hard-won notes:

Build a 2-hour return cushion at MXP and BGY, 90 minutes at LIN. The Malpensa Express is reliable but not infallible — a single signal failure cascades for an hour. The Bergamo bus is at the mercy of A4 traffic. I once spent 75 minutes on what should have been a 50-minute bus ride. Add the cushion. Better to drink a bad airport coffee than miss the flight.

Don’t try to climb the Duomo rooftop without a pre-booked ticket on a tight layover. The walk-up line in summer is 60-120 minutes. Pre-booked Fast Track entry skips it; without it, you’ve sacrificed the whole plan. Detail on tickets in my Milan Duomo guide.

Schengen vs. non-Schengen makes a real difference. If you’re arriving from London, Dubai, New York, or anywhere outside Schengen, you’ll clear passport control on entry — usually 20-30 minutes at MXP, less at LIN. On the way back out, no exit immigration if you’re flying within Schengen, but a passport check if you’re not. Add 20 minutes for the return.

Carry €30-50 in cash. Luini, the bus operators, and the smaller bars are happier with cash. The Trenord ticket machines take cards but sometimes refuse foreign chips.

Skip Leonardo’s Last Supper. I love it, and I’ve taken visitors three times. It’s a non-starter on a layover. Tickets sell out three to four weeks ahead, slots are 15 minutes, and Santa Maria delle Grazie is a 20-minute detour. Save it for a real trip.

Don’t try to visit two airports. If you land at MXP and depart from LIN (or vice versa), the city is “on your way” only in the loosest sense. Each airport transfer eats 90 minutes round trip. You’ll spend most of the layover on transport. Better to head to whichever airport you’re flying out of, drop your bag there, and explore the city if there’s still time.

Navigli canal at sunset with aperitivo glasses on outdoor table

Overnight layovers and airport hotels

If your layover crosses midnight, leaving the airport gets harder — the Malpensa Express stops at 11:25pm-ish, and the night buses are slow. Three approaches work:

Stay at the airport. The Sheraton Malpensa is connected to Terminal 1 by a covered walkway. Rates run €180-280. The Moxy MXP is across the road, cheaper at €110-160. For Linate, the NH Milano Linate sits five minutes from the terminal. For Bergamo, the Best Western Plus Hotel Galileo Padova is 10 minutes by taxi.

Stay near Milano Centrale. If your layover is 14+ hours and you’d rather see the city in the morning, the area around Centrale has dozens of hotels at every price point. The Excelsior Gallia is the splurge; the Glam Milano and the various ibis Styles properties are reliable mid-range options at €120-180. Walk to the station, ride the airport train at dawn. My hotels near Milano Centrale page has the full breakdown.

Day-use hotel rooms. Several Malpensa-area hotels sell rooms by the hour through Dayuse.com. Useful if you just need a shower and four hours of sleep.

If your layover is too short to leave

Under five hours at MXP, four at BGY, or three at LIN, stay put. Don’t fight it. What you can do inside the airports:

At Malpensa Terminal 1, the Sala Montale lounge (Priority Pass and walk-ins €40-50) gives you decent food, showers, and quiet. Terminal 2 is the Ryanair/easyJet terminal and is genuinely grim — try not to be stuck there. The Sky Lounge in T1 airside is the better walk-in option.

At Linate, the airport is small and recently renovated. There’s an airside Eataly that does proper pasta and a wine bar. The lounges are limited but adequate.

At Bergamo, options are bare. Bring a book.

For onward planning if your trip is just starting, see my Milan itineraries guide and the 3 days in Milan itinerary.

Frequently asked questions

Can I see the Duomo on a 5-hour Milan layover?

From Linate, yes — easily. The M4 puts you at the Duomo in 15 minutes door-to-door. From Malpensa, only barely, and only if you’re already inside Schengen on arrival and have nothing to check on the way out. From Bergamo, it’s risky. I wouldn’t.

Is the Malpensa Express better than a taxi from MXP?

For solo travelers and couples, yes — €15 vs. €110 each way is hard to argue with, and the train is just as fast. For a family of four with limited time, a taxi can make sense if everyone’s tired. The train is more punctual than a taxi during evening traffic.

Where do I leave my luggage during a Milan stopover?

Kibag at Milano Centrale (€6 for 5 hours) is the official option, but it sometimes has long queues. Radical Storage (€5 flat per bag per day, booked online) is usually faster and just as central. Both have locations within walking distance of the Duomo.

How much time should I leave to get back to Malpensa?

From central Milan, plan two hours minimum from the moment you leave the Duomo to your boarding time: roughly 15 minutes to Centrale, up to 30 minutes waiting for the train, 51 minutes on the train, 15 minutes walking to the terminal, 30-45 minutes for check-in, bag drop, and security, plus a 20-minute buffer. Anything tighter and you’ll be sweating it.

Can I do the Last Supper on a Milan layover?

Realistically no. Tickets sell out 3-4 weeks ahead, your slot is fixed to a specific 15-minute window, and Santa Maria delle Grazie is a 20-minute walk from the Duomo. The math only works if you’ve planned it weeks in advance, your layover is 10+ hours, and your slot falls in the middle of it.

What if my luggage is checked through to my final destination?

Then you’ve got an easier day — no bag to manage. Confirm at your originating check-in that your bag is tagged through, ask for both boarding passes, and walk straight from the plane to the airport exit (after immigration if applicable). You’ll still need to clear immigration on arrival in Milan if you’re coming from outside Schengen.

Should I book Duomo tickets in advance for a layover?

Yes, especially in peak season (May-September). A pre-booked Fast Track ticket saves you the 60-120 minute walk-up line and lets you control your time precisely. Book the morning slot — afternoons fill faster.

The short version

Milan rewards the prepared layover and punishes the casual one. Land at Linate and you’ve basically won — the M4 metro makes a Milan layover plan almost trivial. Land at Malpensa or Bergamo and you need to build the day backward from the train you’ll catch home, not forward from the moment you land. Buy the same-day return ticket. Drop your bag. Don’t try the Last Supper. Eat panzerotti standing up. Walk the Galleria, climb the Duomo if you’ve pre-booked, sit for an aperitivo if there’s time. The version of Milan you see in three hours is a real version — not the whole city, but a real slice of it. Six hours and you’ve earned a story. Twelve hours and you’ve had a small, complete Italian afternoon.

For airport-specific transfer details, see my Milan airport transfers rundown. For the longer trip you’re hopefully planning next, the Milan travel tips page covers the rest.