GoAsia
Indonesia

How to Get from Batam to Johor

Find the best way to travel from Batam to Johor. Compare ferry and bus fares, travel times and terminals for your cross-border trip.

Last updated: November 5, 2026

How to Get from Batam to Johor
Contents

Standing on the northern shores of Batam, you can almost feel the pull of the Malaysian peninsula across the Singapore Strait. This route is a classic maritime leap, connecting Indonesia's bustling free trade zone with the gateway to Southern Malaysia. While many travelers focus on the hop to Singapore, the direct path to Johor offers a smoother transition for those looking to explore the Malaysian mainland, visit Legoland, or continue their journey toward Kuala Lumpur without the added complexity of a double border crossing.

Train, Bus, Flight and Ferry tickets

Booking and payment are handled by 12Go, not GoAsia. We may receive a commission when you book through our links.

The journey is defined by the salt spray of the Riau Archipelago and the efficient network of vessels that ply these waters daily. Whether you are a business traveler moving between industrial hubs or a vacationer seeking a change of pace, the connection between Batam and Johor is frequent, affordable, and surprisingly scenic as you navigate through one of the world's busiest shipping lanes.

Batam to Johor by Ferry

The ferry is the quintessential way to make this international crossing. Several terminals in Batam serve different points in Johor. Ferries run from Batam Center to Stulang Laut (Berjaya Waterfront) in Johor Bahru, and from Harbour Bay to Pasir Gudang.[1] Others sail from Harbour Bay to Puteri Harbour.[2] The experience is straightforward: you check in, clear Indonesian immigration, and board a vessel ranging from standard ferries to sleek high-speed craft.

High Speed Ferry and Speedboat Options

For the shortest time on the water, take a fast ferry. Sailings from Harbour Bay to Puteri Harbour take 1 hour 30 minutes to 2 hours.[2] An economy ticket costs Rp 500,000 one way for adults, VIP Rp 630,000.[3] The ride can get a bit bumpy during the monsoon season when the swells are higher.

Standard Ferry and Economy Services

If you are not in a rush, the standard ferries to Johor Bahru are a reliable alternative. Departures from Batam Center to Stulang Laut leave at 06:30, 09:00, 12:30 and 15:30 Indonesian time.[1] Adult tickets from Stulang Laut to Batam Center cost RM 100 one way, plus a RM 35 surcharge.[4] On booking platforms, ferry tickets to Johor Bahru cost about $19 to $30, and the crossing takes from about 2 hours (November 2026).[5] You can easily secure your spot for these crossings by booking on GoAsia.cc, which helps you avoid the last-minute queues at the terminal counters.

Batam to Johor by Bus

While it might seem counterintuitive to take a bus from an island to the mainland, this option typically refers to integrated travel packages that involve a ferry crossing followed by a dedicated coach transfer once you reach Malaysia. This is an excellent choice for travelers whose final destination is not the ferry terminal itself but a specific transport hub or central area within Johor Bahru.

On booking platforms, the Express bus packages to Johor Bahru cost about $24 to $26 (November 2026) and take from about 2 hours 15 minutes in total.[5] They are a great choice if you have significant luggage or prefer the convenience of a managed transfer after your sea leg.

Comparing Your Options

Mode Price Duration Comfort
Fast ferry (Harbour Bay to Puteri Harbour) Rp 500,000 - 630,000[3] 1h 30m - 2h[2] High
Ferry to Johor Bahru About $19 - $30[5] From about 2h[5] Moderate
Express Bus About $24 - $26[5] From about 2h 15m[5] High

Tips for Traveling from Batam to Johor

  • Arrive Early for Immigration: This is an international trip. Arrive at the ferry terminal well before departure to clear Indonesian customs and immigration.
  • Check Your Terminal: Batam has multiple ferry terminals. Ferries to Stulang Laut leave from Batam Center, those to Pasir Gudang and Puteri Harbour from Harbour Bay, so make sure your ticket matches the terminal.[1]
  • Mind the Clock: Indonesia time in Batam is exactly 1 hour behind Malaysia time, so allow for the change when you plan your arrival.[4] Bring some Malaysian Ringgit for your arrival in Johor.
  • Luggage Handling: Be prepared to carry your bags up and down gangplanks. If you have heavy suitcases, the Express bus option might be easier once you are on the Malaysian side.
  • Motion Sickness: If you are prone to sea sickness, try to book the larger high-speed ferries rather than the smaller speedboats, and aim for a seat in the middle of the vessel where movement is felt less.

Timetable

Bus Batam - Johor Bahru $ 23.94–26.34 2h 12m – 2h 30m
  • →  Express 07:00, 09:30, 14:00, 16:30
Ferry Batam - Johor Bahru $ 19.04–29.93 2h – 4h
  • →  Ferry 06:00, 06:30, 07:00, 07:15, 07:30, 08:30, 09:00, 09:15, 09:30, 10:30, 11:20, 11:40, 12:30, 13:30, 13:45, 14:00, 15:30, 15:45, 16:20, 16:30, 17:00, 17:15
  • →  High Speed Ferry 07:30, 10:30, 13:45, 17:00
  • →  Speedboat 06:00, 11:30, 13:30
Ferry Batam - Johor $ 20.77–28.13 1h 30m – 1h 55m
  • →  High Speed Ferry 06:30, 09:15, 11:20, 13:30, 16:20
  • →  Economy 06:30, 09:15, 11:20, 13:30, 16:20
  • →  Ferry 06:30, 09:15, 13:30, 16:20

Frequently Asked Questions

How can I book tickets from Batam to Johor?

Use the booking tool on this page to compare the transport options currently available from Batam to Johor, including current prices and schedules.

What is the cheapest way to get from Batam to Johor?

A standard ferry to Johor Bahru is the cheapest way, with booking platforms listing tickets from about $19 (November 2026). Prices vary with the terminal and operator.

What is the fastest way to get from Batam to Johor?

The fastest way is a fast ferry from Harbour Bay to Puteri Harbour, which takes 1 hour 30 minutes to 2 hours.

How long does it take to get from Batam to Johor?

Fast ferries take 1 hour 30 minutes to 2 hours. Ferries to Johor Bahru take from about 2 hours, and the Express bus package from about 2 hours 15 minutes.

Do I need a visa to travel from Batam to Johor?

Since this is an international crossing from Indonesia to Malaysia, visa requirements depend on your nationality. Check the current entry rules for your passport before you book your ticket.

Which ferry terminal in Batam should I use?

It depends on your destination. Ferries to Stulang Laut in Johor Bahru leave from Batam Center, ferries to Pasir Gudang and Puteri Harbour from Harbour Bay. Check the departure terminal on your ticket.

Is there a time difference between Batam and Johor?

Yes. Indonesia time in Batam is exactly 1 hour behind Malaysia time, so Johor is 1 hour ahead of Batam.

Sources and background

Numbers in the text such as [1] refer to these sources.

  1. [1] Dolphin Fast Ferry: Dolphin Fast Ferry sailing schedule. Retrieved November 5, 2026.
  2. [2] Ferry Global Group: Ferry schedule: Harbour Bay to Puteri Harbour. Retrieved October 26, 2026.
  3. [3] Ferry Global Group: Ferry Global Group price list: fares by route. Retrieved October 26, 2026.
  4. [4] Berjaya Waterfront Ferry Terminal (Stulang Laut): Schedule and fares, Berjaya Waterfront Ferry Terminal. Retrieved October 26, 2026.
  5. [5] 12Go: Batam - Johor timetable. Retrieved November 5, 2026.

Guide prices and journey times are indicative, not live quotes. A booked package may include transfers and waiting time as well as the main journey. Check the selected offer, pickup point and current conditions before booking.