There are 4 ways to get from Batam to Surabaya by plane, ferry, car ferry, 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.

Recommended option

Fly  •  2 h 48 min

  1. Fly from Batam (BTH) to Surabaya (SUB) BTH - SUB

$57 - $115

3 alternative options

Ferry, car ferry, train  •  3 days 7 h

  1. Take the ferry from Batam Centre to Tanah Merah
  2. Take the ferry from Tanah Merah to Tanjung Pinang
  3. Take the car ferry from Kijang to Tanjung Priok
  4. Take the train from Gambir Central to Surabaya Pasar Turi

$85 - $142

Ferry, car ferry, bus  •  3 days 22 h

  1. Take the ferry from Batam Centre to Tanah Merah
  2. Take the ferry from Tanah Merah to Tanjung Pinang
  3. Take the car ferry from Kijang to Tanjung Priok
  4. Take the bus from Jakarta Tanjung Priok Bus Station to Surakarta Bus Station
  5. Take the bus from Surakarta to Surabaya

$93 - $126

Ferry, car ferry  •  5 days 2 h

  1. Take the ferry from Batam Centre to Tanah Merah
  2. Take the ferry from Tanah Merah to Tanjung Pinang
  3. Take the car ferry from Kijang to Pontianak
  4. Take the car ferry from Pontianak to Surabaya

$98 - $146

Questions & Answers

The cheapest way to get from Batam to Surabaya is to fly which costs Rp800000 - Rp1700000 and takes 2 h 48 min.

More details

The quickest way to get from Batam to Surabaya is to fly which costs Rp800000 - Rp1700000 and takes 2 h 48 min.

More details

The distance between Batam and Surabaya is 1345 km.

It takes approximately 2 h 48 min to get from Batam to Surabaya, including transfers.

More details

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

Citilink Indonesia, Lion Mentari Airlines and three other airlines fly from Batam to Surabaya hourly.

Airlines
Lion Mentari Airlines
Website
lionair.co.id
Flights from Batam to Surabaya
Ave. Duration
2 h 10 min
When
Every day
Estimated price
$45 - $200
Flights from Batam to Surabaya via Pontianak
Ave. Duration
4 h
When
Every day
Estimated price
$45 - $200
Flights from Batam to Surabaya via Jakarta
Ave. Duration
4 h 20 min
When
Every day
Estimated price
$45 - $200
Citilink Indonesia
Website
Flights from Batam to Surabaya
Ave. Duration
2 h 10 min
When
Every day
Estimated price
$45 - $200
Flights from Batam to Surabaya via Pontianak
Ave. Duration
4 h 15 min
When
Every day
Estimated price
$45 - $200
Flights from Batam to Surabaya via Jakarta
Ave. Duration
4 h 25 min
When
Every day
Estimated price
$45 - $200
Garuda Indonesia
Website
garuda-indonesia.com
Flights from Batam to Surabaya via Jakarta
Ave. Duration
4 h 20 min
When
Every day
Estimated price
$95 - $550
Batik Air
Website
batikair.com
Flights from Batam to Surabaya via Jakarta Halim Perdana Kusuma
Ave. Duration
3 h 55 min
When
Every day
Estimated price
$95 - $380
PT. Sriwijaya Air
Website
sriwijayaair.co.id
Flights from Batam to Surabaya via Jakarta
Ave. Duration
4 h 10 min
When
Every day
Estimated price
$80 - $230
Train operators
Bus operators
Kramat Djati
Website
kramatdjati.co.id
Bus from Jakarta Tanjung Priok Bus Station to Surakarta Bus Station
Ave. Duration
15 h 30 min
Frequency
Once daily
Estimated price
$10 - $15
Schedules at
kramatdjati.co.id
Book at
easybook.com
bus
Bus from Surakarta to Surabaya
Ave. Duration
7 h 40 min
Frequency
Every 4 hours
Estimated price
$6
Ferry operators
Majestic Fast Ferry
Website
majesticfastferry.com.sg
Ferry from Batam Centre to Tanah Merah
Ave. Duration
45 min
Frequency
4 times a day
Estimated price
$19
Schedules at
majesticfastferry.com.sg
Sindo Ferry
Phone
+65 6331 4123
Email
booking@sindoferry.com.sg
Website
sindoferry.com.sg
Ferry from Tanah Merah to Tanjung Pinang
Ave. Duration
50 min
Frequency
4 times a day
Estimated price
$22
Schedules at
sindoferry.com.sg
Pelni
Website
pelni.co.id
Car ferry from Kijang to Tanjung Priok
Ave. Duration
2 days 16 h
Frequency
Once a week
Estimated price
$35 - $60
Schedules at
pelni.co.id
Car ferry from Kijang to Pontianak
Ave. Duration
37 h 24 min
Frequency
Once a week
Estimated price
$25 - $35
Schedules at
pelni.co.id
Car ferry from Pontianak to Surabaya
Ave. Duration
3 days 8 h
Frequency
Once a week
Estimated price
$30 - $65
Schedules at
pelni.co.id

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 do I get from Sydney to Melbourne, Travelling Croatia’s Dalmatian Coast by boat, bus, car and train and Need to know: Eurostar - to help you get the most out of your next trip.