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

$55 - $113

3 alternative options

Ferry, car ferry, train  •  3 days 8 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

$80 - $142

Ferry, car ferry, bus  •  3 days 21 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

$90 - $128

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

$96 - $141

Questions & Answers

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

The quickest flight from Batam Airport to Surabaya Airport is the direct flight which takes 2 h 5 min.

Search flights

Batik Air, PT. Sriwijaya Air, Garuda Indonesia and two other airlines offer flights from Batam Airport to Surabaya Airport.

Search flights

There are 436+ hotels available in Surabaya. Prices start at $13 USD per night.

More details

The best way to get from Batam to Batam Airport is to taxi which takes 24 min and costs .

More details

Map of how to get from Batam to Surabaya.
Launch map view
  • Distance: 840.7 miles
  • Duration: 2 h 48 min

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 Soekarno–Hatta
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 Soekarno–Hatta
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 Soekarno–Hatta
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 Soekarno–Hatta
Ave. Duration
4 h 25 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
$9 - $14
Schedules at
kramatdjati.co.id
Book at
easybook.com
Putra Agung
Phone
(62) 812 1718 1848
Website
putraagungtravel.com
Bus from Surakarta to Surabaya
Ave. Duration
7 h
Frequency
Twice daily
Estimated price
$9
Schedules at
putraagungtravel.com
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
$30 - $60
Schedules at
pelni.co.id
Car ferry from Kijang to Pontianak
Ave. Duration
37 h 24 min
Frequency
Once a week
Estimated price
$24 - $35
Schedules at
pelni.co.id
Car ferry from Pontianak to Surabaya
Ave. Duration
3 days 8 h
Frequency
Once a week
Estimated price
$29 - $60
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 Heading to Europe? Read this before you buy a Eurail Pass, Italy Travel Guides and Thanksgiving 2018: How to travel stress-free - to help you get the most out of your next trip.