Rome2Rio

How to get fromPulau Batam to Surabayaby plane, train, ferry, or bus

Find Transport to Surabaya

See all options
QR code to download the Rome2Rio app

Download the Rome2Rio travel app

Scan QR code with your phone to download the app

Download on the App StoreGet it on Google Play

There are 6 ways to get from Pulau Batam to Surabaya by plane, train, ferry, 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 to Juanda International Airport, train

    best
    1. Fly from Hang Nadim International Airport (BTH) to Juanda International Airport (SUB)plane plane BTH - SUB
    2. Take the train from Waru to Surabaya Gubengtrain train
    5h 23m
    Rp 1,617,639–2,997,800
  2. Ferry, bus

    cheapest
    1. Take the ferry from Batu Ampar to Port of Tanjung Priokferry ferry KM Kelud
    2. Take the bus from DAMRI Bus Station Jakarta to Surabaya Kotabus bus Jakarta - Surabaya Kota
    2d
    Rp 659,260–1,353,265
  3. Ferry, train

    1. Take the ferry from Batu Ampar to Port of Tanjung Priokferry ferry KM Kelud
    2. Take the train from Jakarta Gambir to Surabaya Pasar Turitrain train Argo Bromo Anggrek / ...
    47h 36m
    Rp 828,336–1,056,306
  4. Fly to Abdul Rachman Saleh Airport, train

    1. Fly from Hang Nadim International Airport (BTH) to Abdul Rachman Saleh Airport (MLG)plane plane BTH - MLG
    2. Take the train from Lawang to Gubengtrain train
    7h 20m
    Rp 2,443,139–5,257,800
  5. Fly to Ahmad Yani, train

    1. Fly from Hang Nadim International Airport (BTH) to Ahmad Yani (SRG)plane plane BTH - SRG
    2. Take the train from Semarang Tawang to Surabaya Pasar Turitrain train
    6h 24m
    Rp 2,038,139–3,647,800
  6. Ferry

    1. Take the ferry from Telaga Punggur Ferry Terminal to Sri Bintan Pura Ferry Terminalferry ferry
    2. Take the ferry from Pelabuhan Sri Bayintan Kijang to Surabaya - Tanjung Perak Portferry ferry Km Umsini
    3d 2h
    Rp 668,216–884,090

Hang Nadim International Airport (BTH) to Juanda International Airport (SUB) flights

Calendar56Weekly Planes
Duration3h 55mAverage Duration
TicketRp 1,480,122Cheapest Price
See schedules

Comparing Your Travel Options

What companies run services between Pulau Batam, Indonesia and Surabaya, Indonesia?

You can take a vehicle from Pulau Batam to Surabaya via Telaga Punggur Ferry Terminal, Sri Bintan Pura Ferry Terminal, Pelabuhan Sri Bayintan Kijang, and Surabaya - Tanjung Perak Port in around 3d 2h.

Airlines
Train operators
Bus operators
Ferry operators

Want to know more about travelling around the world?

Rome2Rio's Travel Guide series provide vital information for the global traveller. Read our range of informative guides on popular transport routes and companies - including How to get from Luton Airport into central London, Heading to Europe? Read this before you buy a Eurail Pass, and How to get from Southend Airport into central London - to help you get the most out of your next trip.