Johor Bahru is the jumping-off point for travelers coming from Singapore heading north into Thailand. Hat Yai is the first major Thai city across the border — a transport hub, a street food city, and the gateway to southern Thailand\’s islands. The distance is 867 km and there are two realistic options: overnight bus or flight from Senai Airport.
🔍 [Travelpayouts widget: Search JB → Hat Yai transport via 12Go]
ℹ️ From May 2025, all foreign visitors must complete the Thailand Digital Arrival Card (TDAC) before arrival at tdac.immigration.go.th. This replaces the old paper TM6 form.
Option 1: Overnight Bus (Most Popular)
Direct overnight buses from Johor Bahru to Hat Yai depart from Larkin Bus Terminal (JB\’s main intercity terminal, accessible by taxi or Grab from the city center or Woodlands causeway). Operators including KPB Express, Konsortium, and Grassland Super Nice Express run this route with up to 26 daily departures.
Most departures are in the late afternoon or evening (16:00–20:00), arriving at Hat Yai Bus Terminal in the early morning. Journey time is approximately 11–13 hours including the border crossing at Bukit Kayu Hitam / Sadao. Tickets cost around MYR 60–80 (~$13–18 USD).
- Earliest departure: 16:00 from Larkin Terminal
- Latest departure: 20:00
- Journey time: ~11–13 hours
- Cost: ~$13–18 USD
- Operators: KPB Express, Konsortium, Grassland Super Nice Express
🎟 [Travelpayouts widget: JB → Hat Yai overnight bus via 12Go]
Option 2: Fly from Senai Airport (Fastest)
Johor Bahru\’s Senai International Airport (JHB) has direct flights to Hat Yai (HDY) — approximately 1 hour, with AirAsia, Thai AirAsia, and Malindo Air operating up to 4 departures daily. Prices start from around MYR 80–150 (~$18–35 USD) when booked ahead, making this surprisingly competitive with the bus.
If you value time over cost, flying is the obvious choice — you arrive in Hat Yai in under 3 hours door-to-door instead of overnight.
✈️ [Travelpayouts widget: Flights JHB → HDY via Kiwi or Aviasales]
Coming from Singapore?
If you\’re starting from Singapore, the standard route is: cross the causeway to Johor Bahru (MRT to Woodlands, then bus SBS 160 or CW1 across Johor Causeway), then pick up your JB → Hat Yai bus at Larkin Terminal. This adds approximately 1–1.5 hours to the journey. Some Singapore-based bus operators also sell through-tickets from Singapore Golden Mile Complex or HarbourFront directly to Hat Yai, skipping the JB terminal change.
Quick Comparison
| Option | Time | Cost from | Best for |
|---|---|---|---|
| Overnight bus | 11–13 hours | ~$13 USD | Budget, saves hotel night |
| Flight from Senai | ~3 hours total | ~$18 USD | Speed, value when booked early |
The Border Crossing
All buses cross at Bukit Kayu Hitam (Malaysia) / Sadao (Thailand). You exit the bus, clear Malaysian immigration (stamp out), walk to the Thai booth, fill in your TDAC (done online before travel), and receive your 30-day visa exemption stamp. Most nationalities — EU, US, UK, Australia, and many others — enter Thailand visa-free for 30 days. The crossing usually takes 45–90 minutes depending on queues.
Where to Stay in Hat Yai
Hat Yai is worth at least one night. The night markets around Kim Yong Market are excellent for southern Thai street food, and the city has good budget hotels clustered near the bus terminal and train station.
🏨 [Travelpayouts widget: Hotels in Hat Yai via Booking.com or Agoda]
Onward from Hat Yai to the Islands
- Koh Lipe: Minivan to Pak Bara + speedboat, ~3 hours
- Koh Samui: Bus to Surat Thani + ferry, ~6 hours
- Krabi / Koh Lanta: Direct bus, ~3–4 hours
- Koh Kradan / Koh Mook: Bus to Trang + ferry, ~3 hours
- Bangkok: Overnight train or bus, ~12–14 hours
🎟 [Travelpayouts widget: Hat Yai onward transport via 12Go]
Related Guides
- Johor Bahru to Koh Lipe
- Johor Bahru to Koh Samui
- Malaysia to Thailand: Complete Travel Guide
- Penang to Hat Yai
This post contains affiliate links. When you book through them, we may earn a small commission at no extra cost to you.