How to Get from Batam to Johor Bahru

How to Get from Batam to Johor Bahru

Last updated: March 8, 2026

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 offers a direct gateway to Malaysia without the complexities of transiting through a third country.

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 quintessential way to make this trip. It is the most direct method, physically crossing the maritime border in a matter of hours. Several ferry terminals operate in Batam, but the most common departures for Johor Bahru leave from Batam Centre or Harbour Bay, arriving typically at the Stulang Laut Ferry Terminal or Puteri Harbour in Johor.

High Speed Ferry and Speedboat Options

For those who value efficiency, the High Speed Ferry is the most frequent choice. With a duration of approximately 1 hour to 2 hours and 12 minutes, these vessels are designed to cut through the strait quickly. Prices for a standard ferry ticket range from $24 to $27. The experience is generally comfortable, with air-conditioned cabins and assigned seating. On a clear day, you will get a great view of the passing tankers and the distant Singapore skyline.

Speedboats are also available for certain time slots, offering a similar price point and duration. These are often slightly smaller vessels but maintain the same level of speed. Regardless of which boat you choose, remember that you are crossing an international border. You will need to clear Indonesian immigration at the Batam terminal before boarding and Malaysian immigration upon arrival in Johor Bahru. Ensure you have your passport ready and check any visa requirements for Malaysia in advance.

Batam to Johor Bahru by Bus

While a bus cannot drive across the ocean, there are integrated transport services that combine a ferry crossing with a bus leg to provide a seamless door-to-door experience. These Express bus services typically cost around $27 and take about 2 hours and 12 minutes. This option is particularly useful for travelers who want a coordinated itinerary where the transfer between the water and land legs is handled by a single operator. The comfort level is high, with modern coaches used for the Malaysian side of the journey, featuring reclining seats and ample luggage space.

Batam to Johor Bahru by Flight

Flying from Batam (BTH) to Johor Bahru (JHB) is an alternative for those who prefer air travel, though it is often less convenient than the ferry due to airport transfer times and security checks. Flights generally cost between $68 and $96. Interestingly, the total travel time can range from 3 hours to nearly 5 and a half hours, often because these flights may involve a connection or significant ground time. While Economy class is standard and comfortable, most seasoned travelers on this specific route stick to the sea to avoid the extra time spent at airport terminals.

Comparing Your Options

Mode Price (USD) Duration Comfort
Ferry / Speedboat $24 - $27 1h - 2h 12min Moderate
Bus (Express) $27 2h 12min High
Flight $68 - $96 3h - 5h 30min High

Tips for Traveling from Batam to Johor Bahru

  • Arrive Early: Even for the ferry, arrive at the terminal at least 60 to 90 minutes before departure. International immigration queues can be unpredictable, especially on weekends or public holidays.
  • Check Your Terminal: Batam has several ferry terminals (Batam Centre, Harbour Bay, Sekupang, Nongsapura). Double-check your ticket to ensure you go to the correct one, as they are located in different parts of the island.
  • Currency: While many places in the ferry terminals accept cards, it is wise to have a small amount of Indonesian Rupiah (IDR) for terminal fees and Malaysian Ringgit (MYR) for transport once you land in Johor.
  • Terminal Fees: Be prepared to pay a small departure tax or terminal fee at the Batam ferry port, which is often not included in the ticket price. This is usually a few dollars paid in cash.
  • Luggage: Ferries have generous luggage allowances, but if you are carrying oversized items like surfboards or heavy equipment, check with the operator beforehand as extra fees may apply.

Timetable

Flight Batam - Johor Bahru $ 65.77–93.01 2h 59m – 1d 5h 28m
  •   Economy 11:00, 14:10, 16:05, 16:35, 18:55, 19:50, 21:05
Bus Batam - Johor Bahru $ 25.88 2h 12m
  •   Express 07:00, 09:30, 14:00, 16:30
Ferry Batam - Johor Bahru $ 23.53–25.99 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?

You can book train, bus, flight, taxi, van, and ferry tickets from Batam to Johor Bahru directly on GoAsia.cc. Use the booking tool on this page to compare all available options and prices in real time.

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

The cheapest way to travel is by ferry, with prices starting at approximately $24. Both standard ferries and high-speed options fall within the $24 to $27 price range, making the sea crossing the most budget-friendly choice.

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

The fastest way to get to Johor Bahru is by High Speed Ferry, which can complete the journey in as little as 1 hour. This is significantly quicker than flying when you factor in airport check-in and transit times.

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

The journey typically takes between 1 hour and 2 hours and 12 minutes by ferry or bus. Flights are much slower for this specific route, taking anywhere from 3 to over 5 hours.

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?

The Singapore Strait is generally calm, especially during the morning hours. However, during the monsoon season (typically November to March), the water can be slightly choppier. If you are prone to motion sickness, choosing a larger high-speed ferry is recommended.

Which ferry terminal in Johor Bahru should I use?

Most ferries from Batam arrive at Stulang Laut or Puteri Harbour. Stulang Laut is closer to the Johor Bahru city center and the causeway to Singapore, making it the most convenient choice for most travelers.