Milan is served by three airports, and getting from any of them to the San Siro neighborhood is straightforward. This guide covers every option — train, bus, taxi, and private transfer — with real times and costs so you can plan your arrival.

Milan Malpensa Airport (MXP) → San Siro

Distance: ~50 km northwest of San Siro
Total journey time: 60–90 minutes depending on method

Malpensa is Milan's main international airport, handling most long-haul and European flights. Here's how to reach San Siro:

Option 1: Malpensa Express Train + Metro (Best Value)

  • Step 1: Take the Malpensa Express train from the airport to Milano Cadorna station (52 minutes, trains every 30 min)
  • Step 2: At Cadorna, take Metro M1 (red line) one stop to Lotto
  • Step 3: Change to Metro M5 (purple line) and ride to San Siro Ippodromo (2 stops)
  • Total time: ~70–80 minutes
  • Cost: ~€15 (€13 train + €2.20 metro, though some combined tickets exist)
  • Tip: Buy the Malpensa Express ticket online in advance for a small discount. Tickets are available at the Trenord website or app.

Option 2: Malpensa Express to Garibaldi + Metro

  • Step 1: Take the Malpensa Express to Milano Porta Garibaldi (alternating trains, ~50 minutes)
  • Step 2: Walk to the adjacent Garibaldi FS metro station
  • Step 3: Take M5 directly to San Siro Ippodromo (8 minutes)
  • Total time: ~65–75 minutes
  • Cost: ~€15
  • Best for: The most direct metro connection — no line changes needed on the M5.

Option 3: Airport Bus + Metro

  • Malpensa Shuttle or Terravision bus to Milano Centrale (50–60 min, €10–12)
  • From Centrale: M2 to Garibaldi → M5 to San Siro Ippodromo (15 min)
  • Total time: ~75–90 minutes
  • Cost: ~€12–14
  • Note: Buses can be delayed by traffic, especially during rush hour. The train is more reliable.

Option 4: Taxi / Private Transfer

  • Taxi: Fixed-rate fare from Malpensa to Milan city is €105 (set by the Comune di Milano). The trip takes 45–75 minutes depending on traffic.
  • Private transfer: Pre-booked services (Welcome Pickups, Blacklane, etc.) cost €80–120. Convenient for late arrivals or groups.
  • Best for: Late-night arrivals, families with lots of luggage, groups of 3–4 who can split the fare.

Milan Linate Airport (LIN) → San Siro

Distance: ~15 km east of San Siro
Total journey time: 30–45 minutes

Linate is Milan's city airport, closer and easier to reach. It handles mainly domestic and short-haul European flights.

Option 1: Metro M4 + M1 + M5 (Cheapest)

  • Step 1: Take the new Metro M4 (blue line) from Linate Airport station toward the city center
  • Step 2: Change at San Babila to M1 (red line) toward Rho
  • Step 3: At Lotto, change to M5 (purple line) to San Siro Ippodromo
  • Total time: ~35–40 minutes
  • Cost: €2.20 (single urban ticket covers all metro lines)
  • Note: This is remarkably cheap and fast thanks to the M4 line opening.

Option 2: Bus 73 + Metro (Alternative)

  • Bus 73 from Linate to San Babila (25 minutes)
  • M1 from San Babila → Lotto → M5 to San Siro Ippodromo
  • Total time: ~45–50 minutes
  • Cost: €2.20
  • Note: The M4 metro is now the better option, but the bus 73 remains a backup.

Option 3: Taxi

  • Cost: Approximately €25–35 to San Siro
  • Time: 20–35 minutes depending on traffic
  • Tip: There's no fixed rate from Linate like there is from Malpensa. Use the meter or agree on a price with the driver.

Bergamo Orio al Serio Airport (BGY) → San Siro

Distance: ~55 km northeast of San Siro
Total journey time: 75–100 minutes

Bergamo's airport is the main hub for budget airlines like Ryanair and Wizz Air. Despite the name, it's a viable Milan airport — well connected by bus.

Option 1: Airport Bus to Centrale + Metro (Standard Route)

  • Step 1: Take the Orio Shuttle or Terravision bus to Milano Centrale (50–60 min, €10–12)
  • Step 2: At Centrale, take M2 (green line) to Garibaldi FS (2 stops)
  • Step 3: Change to M5 (purple line) to San Siro Ippodromo (8 min)
  • Total time: ~75–90 minutes
  • Cost: €12–15

Option 2: Airport Bus to Linate + Metro

  • Some shuttle services connect Bergamo directly to Linate, from where you can take the M4. Less common but worth checking.

Option 3: Taxi / Transfer

  • Cost: €100–130 (no fixed rate; negotiate or pre-book)
  • Time: 50–75 minutes
  • Best for: Groups who can split the cost, or late-night arrivals when buses don't run.

Quick Comparison — All Airports to San Siro

  • Malpensa (MXP): 60–90 min | €13–15 train+metro | €105 taxi
  • Linate (LIN): 30–45 min | €2.20 metro | €25–35 taxi
  • Bergamo (BGY): 75–100 min | €12–15 bus+metro | €100–130 taxi

Pro tip: If you're booking flights and have a choice, Linate is by far the most convenient for reaching San Siro — it's just one metro journey on the M4+M1+M5 for €2.20.

Late-Night & Early-Morning Arrivals

If you arrive when the metro isn't running (after ~12:30 AM):

  • Malpensa: Malpensa Express trains run until ~11:30 PM. After that, your options are taxi (€105) or pre-booked private transfer.
  • Linate: Night bus NM1 covers some routes, but a taxi (€25–35) is most practical.
  • Bergamo: Orio Shuttle runs late buses timed to flight arrivals. Check schedules. Otherwise, taxi.

We provide detailed arrival instructions to all guests at San Siro Flats, including self-check-in information for late arrivals. Just let us know your flight details and we'll help you plan the transfer.

Easy Airport Access — Book San Siro Flats

Well-connected to all three Milan airports by metro and train. Arrive smoothly, settle into your apartment, start exploring.