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.
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 | |
|
|
| Ferry Batam - Johor Bahru $ 19.04–29.93 2h – 4h | |
|
| Ferry Batam - Johor $ 20.77–28.13 1h 30m – 1h 55m | |
|
Frequently Asked Questions
Use the booking tool on this page to compare the transport options currently available from Batam to Johor, including current prices and schedules.
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.
The fastest way is a fast ferry from Harbour Bay to Puteri Harbour, which takes 1 hour 30 minutes to 2 hours.
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.
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.
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.
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] Dolphin Fast Ferry: Dolphin Fast Ferry sailing schedule. Retrieved November 5, 2026.
- [2] Ferry Global Group: Ferry schedule: Harbour Bay to Puteri Harbour. Retrieved October 26, 2026.
- [3] Ferry Global Group: Ferry Global Group price list: fares by route. Retrieved October 26, 2026.
- [4] Berjaya Waterfront Ferry Terminal (Stulang Laut): Schedule and fares, Berjaya Waterfront Ferry Terminal. Retrieved October 26, 2026.
- [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.
