Rome2Rio

How to get fromSurabaya to Milanby plane, train, or bus

Find Transport to Milan

See all options

There are 6 ways to get from Surabaya to Milan by plane, train, or bus

Select an option below to see step-by-step directions and to compare ticket prices and travel times in Rome2Rio's travel planner.

  1. Fly Juanda International Airport to Milan Linate Airport

    best
    1. Fly from Juanda International Airport (SUB) to Milan Linate Airport (LIN)plane plane SUB - LIN
    20h 4m
    €508–1,011
  2. Fly Juanda International Airport to Milano Malpensa Airport, train

    cheapest
    1. Fly from Juanda International Airport (SUB) to Milano Malpensa Airport (MXP)plane plane SUB - MXP
    2. Take the train from Malpensa Aeroporto T1 to Milano Porta Garibalditrain train
    18h 43m
    €311–1,014
  3. Fly Juanda International Airport to Verona Villafranca Airport, train

    1. Fly from Juanda International Airport (SUB) to Verona Villafranca Airport (VRN)plane plane SUB - VRN
    2. Take the train from Verona Porta Nuova to Milano Centraletrain train
    25h 41m
    €473–1,700
  4. Fly Juanda International Airport to Zurich Airport, train

    1. Fly from Juanda International Airport (SUB) to Zurich Airport (ZRH)plane plane SUB - ZRH
    2. Take the train from Zürich HB to Como S. Giovannitrain train
    3. Take the train from Como S. Giovanni to Milano Centraletrain train
    22h 7m
    €410–1,251
  5. Fly Juanda International Airport to Il Caravaggio International Airport, bus

    1. Fly from Juanda International Airport (SUB) to Il Caravaggio International Airport (BGY)plane plane SUB - BGY
    2. Take the bus from Milan Bergamo Orio al Serio Airport to Piazza Luigi di Savoiabus bus
    22h 53m
    €322–781
  6. Train to Abdul Rachman Saleh Airport, fly to Milano Malpensa Airport, train

    1. Take the train from Gubeng to Lawangtrain train
    2. Fly from Abdul Rachman Saleh Airport (MLG) to Milano Malpensa Airport (MXP)plane plane MLG - MXP
    3. Take the train from Malpensa Aeroporto T1 to Milano Porta Garibalditrain train
    26h 32m
    €610–2,028

Juanda International Airport (SUB) to Milan Linate Airport (LIN) flights

Calendar21Weekly Planes
Duration22h 32mAverage Duration
Ticket€358Cheapest Price
See schedules

Comparing Your Travel Options

What companies run services between Surabaya, Indonesia and Milan, Italy?

Singapore Airlines, Lufthansa, and seven other airlines fly from Juanda International Airport (SUB) to Milan Linate Airport (LIN) 3 times a day.

Airlines
Train operators
Bus operators

Want to know more about travelling around Italy

Rome2Rio's Travel Guide series provide vital information for the global traveller. Filled with useful and timely travel information, the guides answer all the hard questions - such as 'How do I buy a ticket?', 'Should I book online before I travel? ', 'How much should I expect to pay?', 'Do the trains and buses have Wifi?' - to help you get the most out of your next trip.

Related travel guides

Italy Travel Guides

Read the travel guideItaly Travel Guides