Timetable data last refreshed August 2026. Operators change schedules at short notice — always confirm when you book.
153 scheduled routes run from Kedah to Johor, operated by 15 coach companies. There are 248 departures a day, with fares from RM79.00.
- Departing from
- Kedah — 15 boarding points
- Arriving in
- Johor — 23 arrival points
- Operators
- 15 on this corridor
- Departures
- 248 a day
- Fares from
- RM79.00 one way
Book Kedah to Johor
Compare all 15 operators on this route with live seat availability.
Timetable and fares
Every scheduled service on this corridor is listed below, grouped by operator. Use the filter box to narrow a table to your boarding point, or click a column heading to sort by departure time or fare.
Please note: fares and timings are set by the operators and change at short notice. Everything here is a guide — reconfirm when you book.
| Boarding point | Arrival point | Departure times | Fare from | Seating |
|---|---|---|---|---|
| Alor Setar | Johor Bahru (JB Larkin Term.) | 9:15 AM6:30 PM8:15 PM9:30 PM | RM115.00 | 1+2 |
| Alor Setar | Johor Jaya | 9:15 AM6:30 PM | RM120.00 | 1+2 |
| Alor Setar | Pasir Gudang | 9:15 AM6:30 PM | RM120.00 | 1+2 |
| Alor Setar | Skudai, Johor Bahru | 9:15 AM6:30 PM8:15 PM9:30 PM | RM115.00 | 1+2 |
| Alor Setar – Antar Holiday | Johor Bahru (JB Larkin Term.) | 9:16 AM6:31 PM8:16 PM9:31 PM | RM115.00 | 1+2 |
| Alor Setar – Antar Holiday | Johor Jaya | 9:16 AM6:31 PM | RM120.00 | 1+2 |
| Alor Setar – Antar Holiday | Pasir Gudang | 9:16 AM6:31 PM | RM120.00 | 1+2 |
| Alor Setar – Antar Holiday | Skudai, Johor Bahru | 9:16 AM6:31 PM8:16 PM9:31 PM | RM115.00 | 1+2 |
| Bukit Kayu Hitam | Johor Bahru (JB Larkin Term.) | 3:30 PM | RM122.00 | 1+2 |
| Bukit Kayu Hitam | Johor Jaya | 3:30 PM | RM127.00 | 1+2 |
| Bukit Kayu Hitam | Pasir Gudang | 3:30 PM | RM127.00 | 1+2 |
| Bukit Kayu Hitam | Skudai, Johor Bahru | 3:30 PM | RM122.00 | 1+2 |
| Changlun | Johor Bahru (JB Larkin Term.) | 7:15 PM | RM115.00 | 1+2 |
| Changlun | Skudai, Johor Bahru | 7:15 PM | RM115.00 | 1+2 |
| Guar Chempedak | Johor Bahru (JB Larkin Term.) | 10:00 AM7:30 PM9:00 PM | RM95.00 | 1+2 |
| Guar Chempedak | Johor Jaya | 10:00 AM7:30 PM | RM119.00 | 1+2 |
| Guar Chempedak | Pasir Gudang | 10:00 AM7:30 PM | RM119.00 | 1+2 |
| Guar Chempedak | Skudai, Johor Bahru | 10:00 AM7:30 PM9:00 PM | RM95.00 | 1+2 |
| Gurun | Johor Bahru (JB Larkin Term.) | 10:15 AM7:45 PM9:15 PM | RM95.00 | 1+2 |
| Gurun | Johor Jaya | 10:15 AM7:45 PM | RM119.00 | 1+2 |
| Gurun | Pasir Gudang | 10:15 AM7:45 PM | RM119.00 | 1+2 |
| Gurun | Skudai, Johor Bahru | 10:15 AM7:45 PM9:15 PM | RM95.00 | 1+2 |
| Jitra | Johor Bahru (JB Larkin Term.) | 7:45 PM | RM115.00 | 1+2 |
| Jitra | Skudai, Johor Bahru | 7:45 PM | RM115.00 | 1+2 |
| Kulim | Johor Bahru (JB Larkin Term.) | 8:15 PM | RM100.00 | 1+2 |
| Stesen Bas Ekpress Kota Sarang Semut | Johor Bahru (JB Larkin Term.) | 9:45 AM7:00 PM8:45 PM | RM95.00 | 1+2 |
| Stesen Bas Ekpress Kota Sarang Semut | Johor Jaya | 9:45 AM7:00 PM | RM120.00 | 1+2 |
| Stesen Bas Ekpress Kota Sarang Semut | Pasir Gudang | 9:45 AM7:00 PM | RM120.00 | 1+2 |
| Stesen Bas Ekpress Kota Sarang Semut | Skudai, Johor Bahru | 9:45 AM7:00 PM8:45 PM | RM95.00 | 1+2 |
| Sungai Petani | Air Hitam | 8:45 AM | RM100.00 | 1+2 |
| Sungai Petani | Batu Pahat Bus Terminal | 8:45 AM | RM90.00 | 1+2 |
| Sungai Petani | Hentian Teksi Dan Bas Bandar Maharani Muar | 8:45 AM | RM80.00 | 1+2 |
| Sungai Petani | Johor Bahru (JB Larkin Term.) | 11:00 AM6:45 PM7:45 PM8:30 PM10:00 PM10:45 PM | RM105.00 | 1+2 |
| Sungai Petani | Johor Jaya | 11:00 AM6:45 PM8:30 PM | RM110.00 | 1+2 |
| Sungai Petani | Pasir Gudang | 11:00 AM6:45 PM8:30 PM | RM110.00 | 1+2 |
| Sungai Petani | Skudai, Johor Bahru | 11:00 AM6:45 PM7:45 PM8:30 PM10:00 PM10:45 PM | RM105.00 | 1+2 |
| Sungai Petani | Terminal Bas Kluang | 8:45 AM | RM100.00 | 1+2 |
| Boarding point | Arrival point | Departure times | Fare from | Seating |
|---|---|---|---|---|
| Alor Setar | Ayer Hitam Bus Terminal | 2:15 PM8:00 PM | RM105.00 | 1+2 |
| Alor Setar | Johor Bahru (JB Larkin Term.) | 2:15 PM8:00 PM | RM115.00 | 1+2 |
| Alor Setar | Johor Jaya | 2:15 PM8:00 PM | RM115.00 | 1+2 |
| Alor Setar | Pasir Gudang | 8:00 PM | RM115.00 | 1+2 |
| Alor Setar | Skudai Parade | 2:15 PM8:00 PM | RM115.00 | 1+2 |
| Alor Setar | Yong Peng Bus Terminal | 2:15 PM8:00 PM | RM105.00 | 1+2 |
| Changlun | Ayer Hitam Bus Terminal | 7:15 PM | RM106.00 | 1+2 |
| Changlun | Johor Bahru (JB Larkin Term.) | 7:15 PM | RM115.00 | 1+2 |
| Changlun | Johor Jaya | 7:15 PM | RM115.00 | 1+2 |
| Changlun | Pasir Gudang | 7:15 PM | RM115.00 | 1+2 |
| Changlun | Skudai Parade | 7:15 PM | RM115.00 | 1+2 |
| Changlun | Yong Peng Bus Terminal | 7:15 PM | RM115.00 | 1+2 |
| Gurun | Ayer Hitam Bus Terminal | 1:15 PM9:00 PM | RM100.00 | 1+2 |
| Gurun | Johor Bahru (JB Larkin Term.) | 1:15 PM9:00 PM | RM110.00 | 1+2 |
| Gurun | Johor Jaya | 1:15 PM9:00 PM | RM110.00 | 1+2 |
| Gurun | Pasir Gudang | 1:15 PM9:00 PM | RM110.00 | 1+2 |
| Gurun | Skudai Parade | 1:15 PM9:00 PM | RM110.00 | 1+2 |
| Gurun | Yong Peng Bus Terminal | 1:15 PM9:00 PM | RM100.00 | 1+2 |
| Kulim | Ayer Hitam Bus Terminal | 9:00 PM | RM90.00 | 1+2 |
| Kulim | Johor Bahru (JB Larkin Term.) | 9:00 PM | RM100.00 | 1+2 |
| Kulim | Johor Jaya | 9:00 PM | RM100.00 | 1+2 |
| Kulim | Pasir Gudang | 9:00 PM | RM100.00 | 1+2 |
| Kulim | Skudai Parade | 9:00 PM | RM100.00 | 1+2 |
| Kulim | Yong Peng Bus Terminal | 9:00 PM | RM90.00 | 1+2 |
| Sungai Petani | Ayer Hitam Bus Terminal | 1:45 PM3:45 PM8:30 PM9:45 PM | RM95.00 | 1+2 |
| Sungai Petani | Johor Bahru (JB Larkin Term.) | 1:45 PM3:45 PM8:30 PM9:45 PM | RM100.00 | 1+2 |
| Sungai Petani | Johor Jaya | 1:45 PM3:45 PM9:45 PM | RM110.00 | 1+2 |
| Sungai Petani | Muar | 10:45 PM | RM85.00 | 2+2 |
| Sungai Petani | Pasir Gudang | 1:45 PM9:45 PM | RM110.00 | 1+2 |
| Sungai Petani | Skudai Parade | 1:45 PM3:45 PM8:30 PM9:45 PM | RM100.00 | 1+2 |
| Sungai Petani | Yong Peng Bus Terminal | 1:45 PM3:45 PM8:30 PM9:45 PM | RM95.00 | 1+2 |
| Boarding point | Arrival point | Departure times | Fare from | Seating |
|---|---|---|---|---|
| Changlun Bus Terminal | Batu Pahat Bus Terminal | 9:00 PM | RM100.00 | 1+2 |
| Changlun Bus Terminal | Hentian Teksi Dan Bas Bandar Maharani Muar | 9:00 PM | RM95.00 | 1+2 |
| Changlun Bus Terminal | Larkin Sentral | 8:00 PM | RM115.00 | 1+2 |
| Changlun Bus Terminal | Pasir Gudang Bus Terminal | 8:00 PM | RM125.00 | 1+2 |
| Changlun Bus Terminal | Tun Aminah Bus Terminal | 8:00 PM | RM125.00 | 1+2 |
| Jitra Bus Terminal | Batu Pahat Bus Terminal | 9:30 PM | RM95.00 | 1+2 |
| Jitra Bus Terminal | Hentian Teksi Dan Bas Bandar Maharani Muar | 9:30 PM | RM90.00 | 1+2 |
| Jitra Bus Terminal | Larkin Sentral | 8:30 PM | RM115.00 | 1+2 |
| Jitra Bus Terminal | Pasir Gudang Bus Terminal | 8:30 PM | RM120.00 | 1+2 |
| Jitra Bus Terminal | Tun Aminah Bus Terminal | 8:30 PM | RM120.00 | 1+2 |
| Shahab Perdana Bus Terminal, Alor Setar | Batu Pahat Bus Terminal | 10:00 PM | RM90.00 | 1+2 |
| Shahab Perdana Bus Terminal, Alor Setar | Hentian Teksi Dan Bas Bandar Maharani Muar | 10:00 PM | RM90.00 | 1+2 |
| Shahab Perdana Bus Terminal, Alor Setar | Larkin Sentral | 9:00 PM | RM110.00 | 1+2 |
| Shahab Perdana Bus Terminal, Alor Setar | Pasir Gudang Bus Terminal | 9:00 PM | RM115.00 | 1+2 |
| Shahab Perdana Bus Terminal, Alor Setar | Tun Aminah Bus Terminal | 9:00 PM | RM115.00 | 1+2 |
| Terminal Bas Ekspres Ukir Square Sungai Petani | Batu Pahat Bus Terminal | 11:15 PM | RM80.00 | 1+2 |
| Terminal Bas Ekspres Ukir Square Sungai Petani | Hentian Teksi Dan Bas Bandar Maharani Muar | 11:15 PM | RM80.00 | 1+2 |
| Terminal Bas Ekspres Ukir Square Sungai Petani | Larkin Sentral | 10:15 PM | RM100.00 | 1+2 |
| Terminal Bas Ekspres Ukir Square Sungai Petani | Pasir Gudang Bus Terminal | 10:15 PM | RM110.00 | 1+2 |
| Terminal Bas Ekspres Ukir Square Sungai Petani | Tun Aminah Bus Terminal | 10:15 PM | RM100.00 | 1+2 |
| Boarding point | Arrival point | Departure times | Fare from | Seating |
|---|---|---|---|---|
| Alor Setar | Johor Bahru (JB Larkin Term.) | 8:45 PM | RM115.00 | 1+2 |
| Alor Setar | Johor Jaya | 8:45 PM | RM116.00 | 1+2 |
| Alor Setar | Pasir Gudang | 8:45 PM | RM118.00 | 1+2 |
| Alor Setar | Skudai Parade | 8:45 PM | RM115.00 | 1+2 |
| Changlun | Johor Bahru (JB Larkin Term.) | 7:30 PM | RM120.00 | 1+2 |
| Changlun | Johor Jaya | 7:30 PM | RM120.00 | 1+2 |
| Changlun | Pasir Gudang | 7:30 PM | RM122.00 | 1+2 |
| Changlun | Skudai Parade | 7:30 PM | RM118.00 | 1+2 |
| Jitra | Johor Bahru (JB Larkin Term.) | 8:15 PM | RM117.00 | 1+2 |
| Jitra | Johor Jaya | 8:15 PM | RM117.00 | 1+2 |
| Jitra | Pasir Gudang | 8:15 PM | RM119.00 | 1+2 |
| Jitra | Skudai Parade | 8:15 PM | RM115.00 | 1+2 |
| Sungai Petani | Johor Bahru (JB Larkin Term.) | 10:00 PM | RM106.00 | 1+2 |
| Sungai Petani | Johor Jaya | 10:00 PM | RM106.00 | 1+2 |
| Sungai Petani | Pasir Gudang | 10:00 PM | RM109.00 | 1+2 |
| Sungai Petani | Skudai Parade | 10:00 PM | RM105.00 | 1+2 |
| Boarding point | Arrival point | Departure times | Fare from | Seating |
|---|---|---|---|---|
| Changlun Bus Terminal | Batu Pahat Bus Terminal | 9:00 PM | RM109.90 | 1+2 |
| Changlun Bus Terminal | Larkin Sentral | 9:00 PM | RM123.90 | 1+2 |
| Changlun Bus Terminal | Muar Bentayan Bus Terminal | 9:00 PM10:30 PM | RM101.70 | 1+2 |
| Jitra Bus Terminal | Batu Pahat Bus Terminal | 9:30 PM | RM109.90 | 1+2 |
| Jitra Bus Terminal | Larkin Sentral | 9:30 PM | RM123.90 | 1+2 |
| Jitra Bus Terminal | Muar Bentayan Bus Terminal | 9:30 PM11:00 PM | RM101.70 | 1+2 |
| Kulim Bus Terminal | Muar Bentayan Bus Terminal | 10:45 PM | RM79.00 | 1+2 |
| Shahab Perdana Bus Terminal, Alor Setar | Batu Pahat Bus Terminal | 10:00 PM | RM102.30 | 1+2 |
| Shahab Perdana Bus Terminal, Alor Setar | Larkin Sentral | 10:00 PM | RM116.20 | 1+2 |
| Shahab Perdana Bus Terminal, Alor Setar | Muar Bentayan Bus Terminal | 10:00 PM11:30 PM | RM93.70 | 1+2 |
| Terminal Bas Ekspres Ukir Square Sungai Petani | Larkin Sentral | 10:15 PM | RM106.80 | 1+2 |
| Terminal Bas Ekspres Ukir Square Sungai Petani | Muar Bentayan Bus Terminal | 11:15 AM | RM84.00 | 1+2 |
| Boarding point | Arrival point | Departure times | Fare from | Seating |
|---|---|---|---|---|
| Alor Setar | Johor Bahru (JB Larkin Term.) | 8:00 PM | RM115.00 | 1+2 |
| Alor Setar | Tun Aminah Bus Terminal | 8:00 PM | RM115.00 | 1+2 |
| Changlun | Johor Bahru (JB Larkin Term.) | 7:00 PM | RM120.00 | 1+2 |
| Changlun | Tun Aminah Bus Terminal | 7:00 PM | RM120.00 | 1+2 |
| Jitra | Johor Bahru (JB Larkin Term.) | 7:30 PM | RM117.00 | 1+2 |
| Jitra | Tun Aminah Bus Terminal | 7:30 PM | RM117.00 | 1+2 |
| Sungai Petani | Johor Bahru (JB Larkin Term.) | 9:15 PM | RM107.00 | 1+2 |
| Sungai Petani | Tun Aminah Bus Terminal | 9:15 PM | RM107.00 | 1+2 |
| Boarding point | Arrival point | Departure times | Fare from | Seating |
|---|---|---|---|---|
| Guar Chempedak | Johor Bahru (JB Larkin Term.) | 9:00 AM9:00 PM | RM95.00 | 1+2 |
| Guar Chempedak | Tun Aminah Bus Terminal | 9:00 AM9:00 PM | RM95.00 | 1+2 |
| Gurun | Johor Bahru (JB Larkin Term.) | 9:15 AM9:15 PM | RM95.00 | 1+2 |
| Gurun | Tun Aminah Bus Terminal | 9:15 AM9:15 PM | RM95.00 | 1+2 |
| Sungai Petani | Johor Bahru (JB Larkin Term.) | 9:45 AM9:45 PM | RM100.00 | 1+2 |
| Sungai Petani | Tun Aminah Bus Terminal | 9:45 AM9:45 PM | RM100.00 | 1+2 |
| Boarding point | Arrival point | Departure times | Fare from | Seating |
|---|---|---|---|---|
| Kulim | Bandar Penawar Bus Terminal | 10:30 PM | RM107.00 | 1+2 |
| Kulim | Johor Jaya Bus Terminal | 10:30 PM | RM103.00 | 1+2 |
| Kulim | Larkin Sentral | 10:30 PM | RM103.00 | 1+2 |
| Kulim | Pasir Gudang Bus Terminal | 10:30 PM | RM107.00 | 1+2 |
| Kulim | Sungai Rengit Bus Terminal | 10:30 PM | RM107.00 | 1+2 |
| Boarding point | Arrival point | Departure times | Fare from | Seating |
|---|---|---|---|---|
| Kulim Bus Terminal | Kluang Bus Terminal | 8:29 AM8:59 AM10:30 PM10:35 PM | RM90.00 | SVIP |
| Kulim Bus Terminal | Larkin Sentral | 8:29 AM8:59 AM10:30 PM10:35 PM | RM100.00 | SVIP |
| Kulim Bus Terminal | Lucky Garden Yong Peng | 10:30 PM10:35 PM | RM85.00 | SVIP |
| Kulim Bus Terminal | Skudai Johor | 8:29 AM8:59 AM10:30 PM10:35 PM | RM100.00 | SVIP |
| Boarding point | Arrival point | Departure times | Fare from | Seating |
|---|---|---|---|---|
| Changlun Bus Terminal | Larkin Sentral | 8:00 PM | RM122.00 | 1+2 |
| Jitra Bus Terminal | Larkin Sentral | 8:30 PM | RM117.00 | 1+2 |
| Shahab Perdana Bus Terminal, Alor Setar | Larkin Sentral | 9:00 PM | RM117.00 | 1+2 |
| Terminal Bas Ekspres Ukir Square Sungai Petani | Larkin Sentral | 10:00 PM | RM107.00 | 1+2 |
| Boarding point | Arrival point | Departure times | Fare from | Seating |
|---|---|---|---|---|
| Alor Setar | Johor Bahru (JB Larkin Term.) | 8:00 PM | RM110.00 | 1+2 |
| Changlun | Johor Bahru (JB Larkin Term.) | 7:00 PM | RM115.00 | 1+2 |
| Terminal Bas Ekspres Ukir Square Sungai Petani | Johor Bahru (JB Larkin Term.) | 9:00 PM | RM105.00 | 1+2 |
| Boarding point | Arrival point | Departure times | Fare from | Seating |
|---|---|---|---|---|
| Kulim Bus Terminal | Larkin Sentral | 9:45 AM10:15 PM | RM100.00 | Executive |
| Kulim Bus Terminal | Skudai (Petron Station) | 9:45 AM10:15 PM | RM100.00 | Executive |
| Boarding point | Arrival point | Departure times | Fare from | Seating |
|---|---|---|---|---|
| Kulim | Johor Bahru (JB Larkin Term.) | 8:30 AM | RM99.00 | 30s |
| Kulim | Skudai Parade | 8:30 AM | RM99.00 | 30s |
| Boarding point | Arrival point | Departure times | Fare from | Seating |
|---|---|---|---|---|
| Kulim | Larkin Sentral | 8:15 PM | RM95.00 | 1+2 |
| Kulim | Skudai Parade | 8:15 PM | RM95.00 | 1+2 |
| Boarding point | Arrival point | Departure times | Fare from | Seating |
|---|---|---|---|---|
| Shahab Perdana Bus Terminal, Alor Setar | Larkin Sentral | 10:15 PM | RM116.00 | 1+2 |
Boarding points in Kedah
- Sungai Petani
- Alor Setar
- Kulim
- Changlun
- Gurun
- Shahab Perdana Bus Terminal, Alor Setar
- Changlun Bus Terminal
- Jitra Bus Terminal
- Terminal Bas Ekspres Ukir Square Sungai Petani
- Jitra
- Kulim Bus Terminal
- Guar Chempedak
- Alor Setar – Antar Holiday
- Stesen Bas Ekpress Kota Sarang Semut
- Bukit Kayu Hitam
Arrival points in Johor
- Johor Bahru (JB Larkin Term.)
- Larkin Sentral
- Johor Jaya
- Pasir Gudang
- Skudai Parade
- Tun Aminah Bus Terminal
- Skudai, Johor Bahru
- Batu Pahat Bus Terminal
- Hentian Teksi Dan Bas Bandar Maharani Muar
- Ayer Hitam Bus Terminal
- Yong Peng Bus Terminal
- Muar Bentayan Bus Terminal
- Pasir Gudang Bus Terminal
- Air Hitam
- Terminal Bas Kluang
- Muar
- Skudai (Petron Station)
- Johor Jaya Bus Terminal
- Bandar Penawar Bus Terminal
- Sungai Rengit Bus Terminal
- Kluang Bus Terminal
- Skudai Johor
- Lucky Garden Yong Peng
Frequently asked questions
How much is the bus from Kedah to Johor?
Fares start from RM79.00 one way. 15 operators run this route, so prices vary with coach class and departure time.
Which companies run buses from Kedah to Johor?
Cosmic Prestij Express (Prestij Dinasti), Kejora Masyhur Sdn Bhd, KPB Ekspress, LA Holidays, Maraliner, Mayang Sari Express, Pancaran Matahari Express, Permata Utara Sdn Bhd, PERSADA TRAVEL AND TOURS, POH HAI TRAVEL, Quick Liner Express, Sani Express (Sani Hotel), Sri Maju Group, Super Nice Express, TRA Express.
What time is the first and last bus from Kedah to Johor?
The earliest scheduled departure is 8:29 AM and the last is 11:30 PM. Exact times vary by operator and boarding point.