GoAsia
How to Get from Batam to Johor Bahru

How to Get from Batam to Johor Bahru

Last updated: October 23, 2026
Contents

The short stretch of water separating the Riau Archipelago from the tip of the Malay Peninsula represents one of the most interesting transitions in Southeast Asia. Moving from the bustling, industrial energy of Batam to the modern sprawl of Johor Bahru (JB) is more than just a border crossing; it is a shift between two distinct cultures and economies. While many travelers focus on the Singapore link, heading straight to Johor Bahru is a direct gateway to Malaysia without transiting through a third country.

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.

Whether you are heading across the border for a weekend of shopping at Johor's famous outlets, visiting Legoland Malaysia, or continuing your journey north toward Kuala Lumpur, the route is well-serviced and efficient. The journey across the Singapore Strait is a routine trip for locals and expats alike, making the logistics straightforward once you understand the terminal systems and immigration procedures. You can easily secure your spot by booking tickets on GoAsia.cc to ensure a seamless transition from Indonesia to Malaysia.

Batam to Johor Bahru by Ferry

The ferry is the way to make this trip: you cross the maritime border in a couple of hours. Three routes serve Johor Bahru. Dolphin sails from Batam Center to Stulang Laut at 07:30, 10:30, 13:45 and 17:00 Indonesian time.[1] Services also run from Harbour Bay to Stulang Laut,[2] and Ferry Global Group sails from Harbour Bay to Puteri Harbour.[3]

Ferries at the Batam Center ferry terminal
Ferries at the Batam Center ferry terminalPhoto: Masgatotkaca at Indonesian Wikipedia / Wikimedia Commons, CC BY-SA 3.0

Fares and Crossing Times

An adult one-way ticket from Batam Center or Harbour Bay to Stulang Laut costs RM100, plus a surcharge of RM35.[2] The crossing from Harbour Bay to Puteri Harbour takes 1 hour 30 minutes to 2 hours.[3]

On a clear day you get a great view of the passing tankers and the distant Singapore skyline. Remember that you are crossing an international border. You clear Indonesian immigration at the Batam terminal before boarding and Malaysian immigration on arrival in Johor Bahru, so have your passport ready and check the visa requirements for Malaysia in advance. Batam is one hour behind Johor Bahru, so set your watch forward when you arrive.[2]

Comparing Your Options

Mode Price Duration Comfort
Ferry From RM135 (RM100 + RM35 surcharge)[2] 1h 30min - 2h (Harbour Bay to Puteri Harbour)[3] Moderate

Tips for Traveling from Batam to Johor Bahru

  • Arrive Early: International immigration queues can be unpredictable, especially on weekends or public holidays, so arrive at the terminal well before departure.
  • Check Your Terminal: Ferries to Johor leave from Batam Center (Stulang Laut) and Harbour Bay (Puteri Harbour, Stulang Laut, Pasir Gudang). Double-check your ticket to ensure you go to the right one, as they are in different parts of the island.
  • Currency: Have a small amount of Indonesian Rupiah (IDR) for terminal costs and Malaysian Ringgit (MYR) for transport once you land in Johor.

Timetable

Flight Batam - Johor Bahru $ 63.85–90.29 2h 59m – 1days 5h 28m
  • →  Economy 11:00, 14:10, 16:05, 16:35, 18:55, 19:50, 21:05
Bus Batam - Johor Bahru $ 25.12 2h 12m
  • →  Express 07:00, 09:30, 14:00, 16:30
Ferry Batam - Johor Bahru $ 22.84–25.23 1h – 2h 12m
  • →  Ferry 07:00, 09:30, 14:00, 16:30
  • →  High Speed Ferry 06:30, 07:30, 09:00, 10:30, 12:30, 13:45, 15:30, 17:00
  • →  Speedboat 06:00, 11:30, 13:30

Frequently Asked Questions

How can I book tickets from Batam to Johor Bahru?

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

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

The ferry is the practical way to travel. An adult one-way ticket from Batam Center or Harbour Bay to Stulang Laut costs RM100, plus a RM35 surcharge.

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

The ferry from Harbour Bay to Puteri Harbour takes 1 hour 30 minutes to 2 hours, which makes it the quickest way to cross the border.

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

By ferry from Harbour Bay to Puteri Harbour the crossing takes 1 hour 30 minutes to 2 hours. Add time for immigration at both ends.

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

This depends on your nationality. Since you are crossing from Indonesia to Malaysia, you must pass through Malaysian immigration. Many nationalities receive a visa-free entry for tourism, but you should check the latest Malaysian visa requirements before your trip.

Is the ferry crossing between Batam and Johor Bahru rough?

Sailings can change because of the weather, so check your departure on the day. If you are prone to motion sickness, take a seat in the middle of the ferry and look at the horizon.

Which ferry terminal in Johor Bahru should I use?

Ferries from Batam arrive at Stulang Laut, Puteri Harbour or Pasir Gudang. Stulang Laut is close to the Johor Bahru city center and the causeway to Singapore, which makes it the most convenient choice for most travelers.

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 October 23, 2026.
  2. [2] Berjaya Waterfront Ferry Terminal (Stulang Laut): Schedule and fares, Berjaya Waterfront Ferry Terminal. Retrieved October 23, 2026.
  3. [3] Ferry Global Group: Ferry schedule: Harbour Bay to Puteri Harbour. Retrieved October 23, 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.