Milan Airports to San Siro — Transport Guide
How to reach the San Siro neighborhood from Malpensa, Linate, and Bergamo Orio al Serio airports.
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.