Timetable data last refreshed August 2026. Operators change schedules at short notice — always confirm when you book.
KPB Ekspress operates 236 scheduled routes to Johor, Kedah, Perak, Kuala Lumpur, Penang, Negeri Sembilan, Malacca, Selangor and Thailand, with 815 departures a day and fares from RM21.00.
- Passenger rating
- 3.9 / 5
- Destination states
- 9
- Scheduled routes
- 236 · 815 daily departures
- Seating layouts
- 1+2, 2+2, SVIP 27 SEATER
- Fares from
- RM21.00
- Official website
- www.kpbekspres.com.my
Book KPB Ekspress online
Check live KPB Ekspress seat availability and get an instant e-ticket.
KPB Ekspress coaches


Where they go
Timetable and fares
Routes are grouped by destination state. Open a section to see its services, or type in the filter box to search every section at once.
Please note: this timetable is a guide. KPB Ekspress may add, withdraw or retime services without notice.
To Johor
| 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 |
| Bukit Mertajam | Ayer Hitam Bus Terminal | 9:30 PM | RM90.00 | 1+2 |
| Bukit Mertajam | Johor Bahru (JB Larkin Term.) | 9:30 PM | RM100.00 | 1+2 |
| Bukit Mertajam | Johor Jaya | 9:30 PM | RM100.00 | 1+2 |
| Bukit Mertajam | Pasir Gudang | 9:30 PM | RM100.00 | 1+2 |
| Bukit Mertajam | Skudai Parade | 9:30 PM | RM100.00 | 1+2 |
| Bukit Mertajam | Yong Peng Bus Terminal | 9:30 PM | RM90.00 | 1+2 |
| Chai Leng Park – Caltex | Ayer Hitam Bus Terminal | 3:05 PM5:05 PM8:05 PM10:05 PM11:05 PM | RM95.00 | 1+2 / 2+2 |
| Chai Leng Park – Caltex | Johor Bahru (JB Larkin Term.) | 8:20 AM9:45 AM3:05 PM5:05 PM8:05 PM10:05 PM11:05 PM | RM105.00 | 1+2 / 2+2 |
| Chai Leng Park – Caltex | Johor Jaya | 3:05 PM5:05 PM10:05 PM11:05 PM | RM105.00 | 1+2 |
| Chai Leng Park – Caltex | Muar | 11:59 PM | RM80.00 | 2+2 |
| Chai Leng Park – Caltex | Pasir Gudang | 3:05 PM10:05 PM11:05 PM | RM105.00 | 1+2 |
| Chai Leng Park – Caltex | Skudai Parade | 8:20 AM9:45 AM3:05 PM5:05 PM8:05 PM10:05 PM11:05 PM | RM105.00 | 1+2 / 2+2 |
| Chai Leng Park – Caltex | Yong Peng Bus Terminal | 8:20 AM9:45 AM3:05 PM5:05 PM8:05 PM10:05 PM11:05 PM | RM95.00 | 1+2 / 2+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 |
| Kamunting | Ayer Hitam Bus Terminal | 10:30 PM | RM95.00 | 2+2 |
| Kamunting | Johor Bahru (JB Larkin Term.) | 10:30 PM | RM95.00 | 2+2 |
| Kamunting | Skudai Parade | 10:30 PM | RM95.00 | 2+2 |
| Kamunting | Yong Peng Bus Terminal | 10:30 PM | RM95.00 | 2+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 |
| Parit Buntar | Ayer Hitam Bus Terminal | 9:45 PM11:00 PM | RM85.00 | 1+2 / 2+2 |
| Parit Buntar | Johor Bahru (JB Larkin Term.) | 9:30 AM9:45 PM11:00 PM | RM98.00 | 1+2 / 2+2 |
| Parit Buntar | Johor Jaya | 11:00 PM | RM98.00 | 1+2 |
| Parit Buntar | Pasir Gudang | 11:00 PM | RM100.00 | 1+2 |
| Parit Buntar | Skudai Parade | 9:30 AM9:45 PM11:00 PM | RM98.00 | 1+2 / 2+2 |
| Parit Buntar | Yong Peng Bus Terminal | 9:30 AM9:45 PM11:00 PM | RM98.00 | 1+2 / 2+2 |
| Penang Sentral (Butterworth) | Ayer Hitam Bus Terminal | 3:00 PM5:00 PM8:00 PM10:00 PM11:00 PM | RM95.00 | 1+2 / 2+2 |
| Penang Sentral (Butterworth) | Johor Bahru (JB Larkin Term.) | 8:15 AM9:30 AM3:00 PM5:00 PM8:00 PM10:00 PM11:00 PM | RM105.00 | 1+2 / 2+2 |
| Penang Sentral (Butterworth) | Johor Jaya | 3:00 PM5:00 PM10:00 PM11:00 PM | RM105.00 | 1+2 |
| Penang Sentral (Butterworth) | Muar | 11:58 PM | RM80.00 | 2+2 |
| Penang Sentral (Butterworth) | Pasir Gudang | 3:00 PM10:00 PM11:00 PM | RM105.00 | 1+2 |
| Penang Sentral (Butterworth) | Skudai Parade | 8:15 AM9:30 AM3:00 PM5:00 PM8:00 PM10:00 PM11:00 PM | RM105.00 | 1+2 / 2+2 |
| Penang Sentral (Butterworth) | Yong Peng Bus Terminal | 8:15 AM9:30 AM3:00 PM5:00 PM8:00 PM10:00 PM11:00 PM | RM95.00 | 1+2 / 2+2 |
| Sungai Nibong | Ayer Hitam Bus Terminal | 8:45 PM | RM95.00 | 2+2 |
| Sungai Nibong | Johor Bahru (JB Larkin Term.) | 8:45 AM10:30 AM8:45 PM | RM105.00 | 1+2 / 2+2 |
| Sungai Nibong | Skudai Parade | 8:45 AM10:30 AM8:45 PM | RM105.00 | 1+2 / 2+2 |
| Sungai Nibong | Yong Peng Bus Terminal | 8:45 AM10:30 AM8:45 PM | RM95.00 | 1+2 / 2+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 |
| TBS (Terminal Bersepadu Selatan) | Johor Bahru (JB Larkin Term.) | 2:30 PM3:30 PM4:30 PM | RM48.00 | 1+2 |
| TBS (Terminal Bersepadu Selatan) | Skudai Parade | 2:30 PM3:30 PM4:30 PM | RM48.00 | 1+2 |
| TBS (Terminal Bersepadu Selatan) | Yong Peng Bus Terminal | 2:30 PM3:30 PM4:30 PM | RM33.00 | 1+2 |
| Terminal Meru Raya (Ipoh Amanjaya) | Ayer Hitam Bus Terminal | 5:30 PM7:30 PM10:30 PM11:00 PM | RM70.00 | 1+2 / 2+2 |
| Terminal Meru Raya (Ipoh Amanjaya) | Johor Bahru (JB Larkin Term.) | 11:15 AM12:00 PM1:00 PM5:30 PM7:30 PM10:30 PM11:00 PM | RM85.00 | 1+2 / 2+2 |
| Terminal Meru Raya (Ipoh Amanjaya) | Johor Jaya | 5:30 PM7:30 PM | RM85.00 | 1+2 |
| Terminal Meru Raya (Ipoh Amanjaya) | Pasir Gudang | 5:30 PM | RM85.00 | 1+2 |
| Terminal Meru Raya (Ipoh Amanjaya) | Skudai Parade | 11:15 AM12:00 PM1:00 PM5:30 PM7:30 PM10:30 PM11:00 PM | RM85.00 | 1+2 / 2+2 |
| Terminal Meru Raya (Ipoh Amanjaya) | Yong Peng Bus Terminal | 11:15 AM12:00 PM1:00 PM5:30 PM7:30 PM10:30 PM11:00 PM | RM75.00 | 1+2 / 2+2 |
To Kedah
| Boarding point | Arrival point | Departure times | Fare from | Seating |
|---|---|---|---|---|
| Hentian Duta | Sungai Petani | 7:30 PM8:30 PM | RM60.00 | 1+2 |
| JB Merlin Tower | Changlun | 5:00 PM6:00 PM7:00 PM | RM110.00 | 1+2 |
| JB Merlin Tower | ICQS Complex, Bukit Kayu Hitam | 5:00 PM6:00 PM7:00 PM | RM125.00 | 1+2 |
| Johor Bahru (JB Larkin Term.) | Alor Setar | 10:30 AM9:00 PM | RM115.00 | 1+2 |
| Johor Bahru (JB Larkin Term.) | Changlun | 5:30 PM6:30 PM7:30 PM9:00 PM | RM110.00 | 1+2 |
| Johor Bahru (JB Larkin Term.) | Gurun | 10:30 AM12:00 PM9:00 PM | RM115.00 | 1+2 |
| Johor Bahru (JB Larkin Term.) | ICQS Complex, Bukit Kayu Hitam | 5:30 PM6:30 PM7:30 PM | RM125.00 | 1+2 |
| Johor Bahru (JB Larkin Term.) | Jitra Bus Terminal | 9:00 PM | RM120.00 | 1+2 |
| Johor Bahru (JB Larkin Term.) | Kulim | 7:30 AM9:30 PM | RM102.00 | 1+2 / 2+2 |
| Johor Bahru (JB Larkin Term.) | Sungai Petani | 8:00 AM8:30 AM10:30 AM12:00 PM9:00 PM | RM105.00 | 1+2 |
| Johor Jaya | Alor Setar | 10:00 AM8:30 PM | RM115.00 | 1+2 |
| Johor Jaya | Changlun | 4:00 PM5:00 PM6:00 PM8:30 PM | RM110.00 | 1+2 |
| Johor Jaya | Gurun | 10:00 AM11:30 AM8:30 PM | RM115.00 | 1+2 |
| Johor Jaya | ICQS Complex, Bukit Kayu Hitam | 4:00 PM5:00 PM6:00 PM | RM125.00 | 1+2 |
| Johor Jaya | Jitra Bus Terminal | 8:30 PM | RM120.00 | 1+2 |
| Johor Jaya | Kulim | 9:00 PM | RM105.00 | 1+2 |
| Johor Jaya | Sungai Petani | 10:00 AM11:30 AM8:30 PM | RM110.00 | 1+2 |
| Melaka Sentral | Alor Setar | 8:00 AM | RM87.00 | 1+2 |
| Melaka Sentral | Changlun | 8:00 AM | RM92.00 | 1+2 |
| Melaka Sentral | Gurun | 8:00 AM | RM81.00 | 1+2 |
| Melaka Sentral | Kulim | 9:00 PM | RM75.00 | 1+2 |
| Melaka Sentral | Sungai Petani | 8:00 AM11:00 AM | RM78.00 | 1+2 / 2+2 |
| Muar | Sungai Petani | 9:45 AM | RM85.00 | 2+2 |
| Pasir Gudang | Alor Setar | 8:00 PM | RM117.00 | 1+2 |
| Pasir Gudang | Changlun | 8:00 PM | RM127.00 | 1+2 |
| Pasir Gudang | Gurun | 11:00 AM8:00 PM | RM117.00 | 1+2 |
| Pasir Gudang | Jitra Bus Terminal | 8:00 PM | RM122.00 | 1+2 |
| Pasir Gudang | Sungai Petani | 11:00 AM8:00 PM | RM112.00 | 1+2 |
| TBS (Terminal Bersepadu Selatan) | Alor Setar | 10:30 AM4:00 PM | RM70.00 | 1+2 |
| TBS (Terminal Bersepadu Selatan) | Changlun | 10:30 AM | RM76.00 | 1+2 |
| TBS (Terminal Bersepadu Selatan) | Kulim | 12:30 PM11:30 PM | RM55.00 | 1+2 / 2+2 |
| TBS (Terminal Bersepadu Selatan) | Sungai Petani | 10:30 AM1:00 PM1:30 PM2:00 PM4:00 PM5:30 PM7:00 PM8:00 PM | RM60.00 | 1+2 / 2+2 |
| Tun Aminah | Alor Setar | 11:00 AM9:30 PM | RM115.00 | 1+2 |
| Tun Aminah | Changlun | 6:00 PM7:00 PM8:00 PM9:30 PM | RM110.00 | 1+2 |
| Tun Aminah | Gurun | 11:00 AM12:30 PM9:30 PM | RM115.00 | 1+2 |
| Tun Aminah | ICQS Complex, Bukit Kayu Hitam | 6:00 PM7:00 PM8:00 PM | RM125.00 | 1+2 |
| Tun Aminah | Jitra Bus Terminal | 9:30 PM | RM120.00 | 1+2 |
| Tun Aminah | Kulim | 8:00 AM10:00 PM | RM102.00 | 1+2 / 2+2 |
| Tun Aminah | Sungai Petani | 8:30 AM9:00 AM11:00 AM12:30 PM9:30 PM | RM105.00 | 1+2 |
To Perak
| Boarding point | Arrival point | Departure times | Fare from | Seating |
|---|---|---|---|---|
| Alor Setar | Terminal Meru Raya (Ipoh Amanjaya) | 2:15 PM | RM30.00 | 1+2 |
| Chai Leng Park – Caltex | Terminal Meru Raya (Ipoh Amanjaya) | 8:05 AM8:20 AM9:10 AM9:45 AM10:05 AM10:35 AM11:05 AM12:20 PM3:05 PM5:05 PM6:35 PM8:05 PM9:05 PM | RM22.00 | 1+2 / 2+2 / SVIP 27 SEATER |
| Gurun | Terminal Meru Raya (Ipoh Amanjaya) | 1:15 PM | RM29.00 | 1+2 |
| Hentian Duta | Parit Buntar | 8:30 AM11:20 AM | RM50.00 | 1+2 / 2+2 |
| Hentian Duta | Simpang Taiping | 8:30 AM11:20 AM7:30 PM8:30 PM | RM42.00 | 1+2 / 2+2 |
| Hentian Duta | Terminal Meru Raya (Ipoh Amanjaya) | 8:30 AM11:20 AM12:20 PM7:30 PM8:30 PM | RM34.00 | 1+2 / 2+2 |
| Johor Bahru (JB Larkin Term.) | Parit Buntar | 7:30 AM2:30 PM8:30 PM9:30 PM11:00 PM | RM85.00 | 1+2 / 2+2 |
| Johor Bahru (JB Larkin Term.) | Simpang Taiping | 7:30 AM2:30 PM9:30 PM10:00 PM11:00 PM | RM80.00 | 1+2 / 2+2 |
| Johor Bahru (JB Larkin Term.) | Terminal Meru Raya (Ipoh Amanjaya) | 7:30 AM8:00 AM8:30 AM9:00 AM10:30 AM12:00 PM2:30 PM8:30 PM10:00 PM11:00 PM | RM75.00 | 1+2 / 2+2 |
| Johor Jaya | Parit Buntar | 2:00 PM9:00 PM | RM85.00 | 1+2 |
| Johor Jaya | Simpang Taiping | 2:00 PM9:00 PM | RM80.00 | 1+2 |
| Johor Jaya | Terminal Meru Raya (Ipoh Amanjaya) | 10:00 AM11:30 AM2:00 PM | RM75.00 | 1+2 |
| Kajang | Parit Buntar | 5:00 PM | RM55.00 | 1+2 |
| Kajang | Simpang Taiping | 3:45 PM5:00 PM | RM46.00 | 1+2 |
| Kajang | Terminal Meru Raya (Ipoh Amanjaya) | 3:45 PM5:00 PM | RM36.00 | 1+2 |
| Melaka Sentral | Hentian Raya Bagan Serai | 9:00 PM | RM65.00 | 1+2 |
| Melaka Sentral | Parit Buntar | 8:30 AM8:00 PM9:00 PM | RM68.00 | 1+2 / 2+2 |
| Melaka Sentral | Simpang Taiping | 8:30 AM11:00 AM8:00 PM9:00 PM10:00 PM | RM61.00 | 1+2 / 2+2 |
| Melaka Sentral | Terminal Meru Raya (Ipoh Amanjaya) | 8:30 AM9:00 AM11:00 AM8:00 PM10:00 PM | RM53.00 | 1+2 / 2+2 |
| Muar | Simpang Taiping | 9:45 AM | RM68.00 | 2+2 |
| Muar | Terminal Meru Raya (Ipoh Amanjaya) | 9:45 AM | RM60.00 | 2+2 |
| Parit Buntar | Terminal Meru Raya (Ipoh Amanjaya) | 8:30 AM9:30 AM11:00 AM | RM25.00 | 1+2 |
| Pasir Gudang | Terminal Meru Raya (Ipoh Amanjaya) | 11:00 AM | RM87.00 | 1+2 |
| Penang Sentral (Butterworth) | Terminal Meru Raya (Ipoh Amanjaya) | 8:00 AM8:15 AM9:00 AM9:30 AM10:00 AM10:30 AM11:00 AM12:15 PM3:00 PM5:00 PM6:30 PM8:00 PM9:00 PM | RM22.00 | 1+2 / 2+2 / SVIP 27 SEATER |
| Sungai Nibong | Terminal Meru Raya (Ipoh Amanjaya) | 7:30 AM8:45 AM9:45 AM10:30 AM | RM22.00 | 1+2 |
| Sungai Petani | Terminal Meru Raya (Ipoh Amanjaya) | 8:15 AM10:00 AM11:15 AM1:45 PM3:45 PM5:30 PM8:00 PM8:30 PM | RM26.00 | 1+2 / SVIP 27 SEATER |
| TBS (Terminal Bersepadu Selatan) | Hentian Raya Bagan Serai | 11:30 PM | RM50.00 | 1+2 |
| TBS (Terminal Bersepadu Selatan) | Parit Buntar | 7:00 AM8:00 AM11:00 AM12:30 PM6:00 PM7:30 PM10:30 PM11:30 PM | RM35.00 | 1+2 / 2+2 |
| TBS (Terminal Bersepadu Selatan) | Simpang Taiping | 12:30 AM7:00 AM8:00 AM11:00 AM12:30 PM2:00 PM3:00 PM4:30 PM6:00 PM7:00 PM7:30 PM8:00 PM10:30 PM11:30 PM | RM35.00 | 1+2 / 2+2 |
| TBS (Terminal Bersepadu Selatan) | Terminal Meru Raya (Ipoh Amanjaya) | 12:30 AM7:00 AM8:00 AM11:00 AM12:00 PM12:30 PM1:00 PM1:30 PM2:00 PM2:15 PM3:00 PM4:00 PM4:30 PM5:30 PM6:00 PM7:00 PM7:30 PM8:00 PM10:30 PM | RM30.00 | 1+2 / 2+2 |
| Tun Aminah | Parit Buntar | 8:00 AM3:00 PM9:00 PM10:00 PM11:30 PM | RM85.00 | 1+2 / 2+2 |
| Tun Aminah | Simpang Taiping | 8:00 AM3:00 PM10:00 PM10:30 PM11:30 PM | RM80.00 | 1+2 / 2+2 |
| Tun Aminah | Terminal Meru Raya (Ipoh Amanjaya) | 8:00 AM8:30 AM9:00 AM9:30 AM11:00 AM12:30 PM3:00 PM9:00 PM10:30 PM11:30 PM | RM75.00 | 1+2 / 2+2 |
To Kuala Lumpur
| Boarding point | Arrival point | Departure times | Fare from | Seating |
|---|---|---|---|---|
| Alor Setar | Hentian Duta | 9:30 PM | RM68.00 | 1+2 |
| Alor Setar | TBS (Terminal Bersepadu Selatan) | 2:15 PM8:00 PM9:30 PM | RM68.00 | 1+2 |
| Bukit Mertajam | Hentian Duta | 9:30 AM10:30 PM | RM55.00 | 1+2 / 2+2 |
| Bukit Mertajam | TBS (Terminal Bersepadu Selatan) | 9:30 AM10:30 PM | RM55.00 | 1+2 / 2+2 |
| Chai Leng Park – Caltex | Hentian Duta | 8:05 AM9:10 AM10:05 AM10:35 AM11:05 AM12:20 PM6:35 PM9:05 PM10:35 PM11:20 PM11:35 PM11:59 PM | RM55.00 | 1+2 / 2+2 / SVIP 27 SEATER |
| Chai Leng Park – Caltex | TBS (Terminal Bersepadu Selatan) | 8:05 AM8:20 AM9:10 AM9:45 AM10:05 AM10:35 AM11:05 AM12:20 PM3:05 PM5:05 PM6:35 PM8:05 PM9:05 PM10:05 PM10:35 PM11:05 PM11:20 PM11:35 PM11:59 PM | RM55.00 | 1+2 / 2+2 / SVIP 27 SEATER |
| Changlun | Hentian Duta | 8:30 PM | RM70.00 | 1+2 |
| Changlun | TBS (Terminal Bersepadu Selatan) | 7:15 PM8:30 PM | RM70.00 | 1+2 |
| Gurun | Hentian Duta | 10:30 PM | RM60.00 | 1+2 |
| Gurun | TBS (Terminal Bersepadu Selatan) | 1:15 PM9:00 PM10:30 PM | RM60.00 | 1+2 |
| Johor Bahru (JB Larkin Term.) | TBS (Terminal Bersepadu Selatan) | 7:30 AM8:00 AM8:30 AM9:00 AM10:30 AM12:00 PM2:30 PM | RM40.00 | 1+2 / 2+2 |
| Johor Jaya | TBS (Terminal Bersepadu Selatan) | 10:00 AM11:30 AM2:00 PM | RM40.00 | 1+2 |
| Kamunting | Hentian Duta | 9:30 AM | RM45.00 | 1+2 |
| Kamunting | TBS (Terminal Bersepadu Selatan) | 9:30 AM10:30 PM | RM45.00 | 1+2 / 2+2 |
| Kulim | Hentian Duta | 9:00 AM10:00 PM | RM52.00 | 1+2 / 2+2 |
| Kulim | TBS (Terminal Bersepadu Selatan) | 9:00 AM9:00 PM10:00 PM | RM52.00 | 1+2 / 2+2 |
| Melaka Sentral | TBS (Terminal Bersepadu Selatan) | 8:00 AM8:30 AM9:00 AM11:00 AM8:00 PM9:00 PM10:00 PM | RM21.00 | 1+2 / 2+2 |
| Muar | TBS (Terminal Bersepadu Selatan) | 9:45 AM | RM26.00 | 2+2 |
| Parit Buntar | Hentian Duta | 8:30 AM10:30 AM11:00 AM11:45 PM | RM50.00 | 1+2 / 2+2 |
| Parit Buntar | TBS (Terminal Bersepadu Selatan) | 8:30 AM9:30 AM10:30 AM11:00 AM9:45 PM11:00 PM11:45 PM | RM50.00 | 1+2 / 2+2 |
| Pasir Gudang | TBS (Terminal Bersepadu Selatan) | 11:00 AM | RM50.00 | 1+2 |
| Penang Sentral (Butterworth) | Hentian Duta | 8:00 AM9:00 AM10:00 AM10:30 AM11:00 AM12:15 PM6:30 PM9:00 PM10:30 PM11:15 PM11:30 PM11:58 PM | RM55.00 | 1+2 / 2+2 / SVIP 27 SEATER |
| Penang Sentral (Butterworth) | TBS (Terminal Bersepadu Selatan) | 8:00 AM8:15 AM9:00 AM9:30 AM10:00 AM10:30 AM11:00 AM12:15 PM3:00 PM5:00 PM6:30 PM8:00 PM9:00 PM10:00 PM10:30 PM11:00 PM11:15 PM11:30 PM11:58 PM | RM55.00 | 1+2 / 2+2 / SVIP 27 SEATER |
| Sungai Nibong | Hentian Duta | 7:30 AM9:45 AM9:45 PM | RM55.00 | 1+2 / 2+2 |
| Sungai Nibong | TBS (Terminal Bersepadu Selatan) | 7:30 AM8:45 AM9:45 AM10:30 AM8:45 PM9:45 PM | RM55.00 | 1+2 / 2+2 |
| Sungai Petani | Hentian Duta | 8:15 AM10:00 AM11:15 AM5:30 PM8:00 PM10:45 PM | RM60.00 | 1+2 / 2+2 / SVIP 27 SEATER |
| Sungai Petani | TBS (Terminal Bersepadu Selatan) | 8:15 AM10:00 AM11:15 AM1:45 PM3:45 PM5:30 PM8:00 PM8:30 PM9:45 PM10:45 PM | RM60.00 | 1+2 / 2+2 / SVIP 27 SEATER |
| Terminal Meru Raya (Ipoh Amanjaya) | Hentian Duta | 10:00 AM10:45 AM11:30 AM12:30 PM12:45 PM1:30 PM2:45 PM9:00 PM11:15 PM | RM34.00 | 1+2 / SVIP 27 SEATER |
| Terminal Meru Raya (Ipoh Amanjaya) | TBS (Terminal Bersepadu Selatan) | 10:00 AM10:45 AM11:15 AM11:30 AM12:00 PM12:30 PM12:45 PM1:00 PM1:30 PM2:45 PM5:30 PM7:30 PM9:00 PM10:30 PM11:00 PM11:15 PM | RM34.00 | 1+2 / 2+2 / SVIP 27 SEATER |
| Tun Aminah | TBS (Terminal Bersepadu Selatan) | 8:00 AM8:30 AM9:00 AM9:30 AM11:00 AM12:30 PM3:00 PM | RM48.00 | 1+2 / 2+2 |
To Pulau Pinang
| Boarding point | Arrival point | Departure times | Fare from | Seating |
|---|---|---|---|---|
| Hentian Duta | Penang Sentral (Butterworth) | 8:30 AM11:20 AM12:20 PM7:30 PM8:30 PM | RM55.00 | 1+2 / 2+2 |
| Hentian Duta | Sungai Nibong | 12:20 PM | RM55.00 | 2+2 |
| JB Merlin Tower | Penang Sentral (Butterworth) | 5:00 PM6:00 PM7:00 PM | RM95.00 | 1+2 |
| Johor Bahru (JB Larkin Term.) | Bukit Mertajam | 9:30 PM | RM105.00 | 1+2 |
| Johor Bahru (JB Larkin Term.) | Penang Sentral (Butterworth) | 8:00 AM8:30 AM9:00 AM10:30 AM12:00 PM2:30 PM5:30 PM6:30 PM7:30 PM8:30 PM9:00 PM9:30 PM10:00 PM11:00 PM | RM85.00 | 1+2 / 2+2 |
| Johor Bahru (JB Larkin Term.) | Sungai Nibong | 9:00 AM12:00 PM2:30 PM8:30 PM10:00 PM | RM85.00 | 1+2 / 2+2 |
| Johor Jaya | Bukit Mertajam | 9:00 PM | RM105.00 | 1+2 |
| Johor Jaya | Penang Sentral (Butterworth) | 10:00 AM11:30 AM2:00 PM4:00 PM5:00 PM6:00 PM8:30 PM9:00 PM | RM85.00 | 1+2 |
| Johor Jaya | Sungai Nibong | 11:30 AM2:00 PM | RM85.00 | 1+2 |
| Kajang | Penang Sentral (Butterworth) | 3:45 PM5:00 PM | RM55.00 | 1+2 |
| Kajang | Sungai Nibong | 3:45 PM | RM57.00 | 1+2 |
| Melaka Sentral | Penang Sentral (Butterworth) | 8:00 AM8:30 AM9:00 AM11:00 AM8:00 PM10:00 PM | RM75.00 | 1+2 / 2+2 |
| Melaka Sentral | Sungai Nibong | 9:00 AM10:00 PM | RM75.00 | 1+2 / 2+2 |
| Muar | Penang Sentral (Butterworth) | 9:45 AM | RM80.00 | 2+2 |
| Pasir Gudang | Penang Sentral (Butterworth) | 11:00 AM8:00 PM | RM107.00 | 1+2 |
| Pasir Gudang | Sungai Nibong | 11:00 AM | RM107.00 | 1+2 |
| TBS (Terminal Bersepadu Selatan) | Penang Sentral (Butterworth) | 12:30 AM7:00 AM8:00 AM10:30 AM11:00 AM12:00 PM1:00 PM1:30 PM2:00 PM2:15 PM3:00 PM4:00 PM4:30 PM5:30 PM6:00 PM7:00 PM7:30 PM8:00 PM10:30 PM | RM40.00 | 1+2 / 2+2 |
| TBS (Terminal Bersepadu Selatan) | Sungai Nibong | 12:30 AM12:00 PM2:15 PM3:00 PM4:30 PM5:30 PM7:30 PM | RM43.00 | 1+2 / 2+2 |
| Tun Aminah | Bukit Mertajam | 10:00 PM | RM105.00 | 1+2 |
| Tun Aminah | Penang Sentral (Butterworth) | 8:30 AM9:00 AM9:30 AM11:00 AM12:30 PM3:00 PM6:00 PM7:00 PM8:00 PM9:00 PM9:30 PM10:00 PM10:30 PM11:30 PM | RM85.00 | 1+2 / 2+2 |
| Tun Aminah | Sungai Nibong | 9:30 AM12:30 PM3:00 PM9:00 PM10:30 PM | RM85.00 | 1+2 / 2+2 |
To Negeri Sembilan
| Boarding point | Arrival point | Departure times | Fare from | Seating |
|---|---|---|---|---|
| Alor Setar | Terminal 1 Seremban | 9:30 PM | RM75.00 | 1+2 |
| Bukit Mertajam | Terminal 1 Seremban | 9:30 AM10:30 PM | RM65.00 | 1+2 / 2+2 |
| Chai Leng Park – Caltex | Terminal 1 Seremban | 9:10 AM10:35 AM10:35 PM11:20 PM11:35 PM11:59 PM | RM65.00 | 1+2 / 2+2 |
| Changlun | Terminal 1 Seremban | 8:30 PM | RM80.00 | 1+2 |
| Gurun | Terminal 1 Seremban | 10:30 PM | RM70.00 | 1+2 |
| Kulim | Terminal 1 Seremban | 9:00 AM10:00 PM | RM62.00 | 1+2 / 2+2 |
| Parit Buntar | Terminal 1 Seremban | 10:30 AM11:45 PM | RM60.00 | 1+2 / 2+2 |
| Penang Sentral (Butterworth) | Terminal 1 Seremban | 9:00 AM10:30 AM10:30 PM11:15 PM11:30 PM11:58 PM | RM65.00 | 1+2 / 2+2 |
| Sungai Nibong | Terminal 1 Seremban | 9:45 AM9:45 PM | RM65.00 | 1+2 / 2+2 |
| Sungai Petani | Terminal 1 Seremban | 8:15 AM10:45 PM | RM70.00 | 1+2 / 2+2 |
| Terminal Meru Raya (Ipoh Amanjaya) | Terminal 1 Seremban | 11:30 AM12:45 PM | RM45.00 | 1+2 |
To Malacca
| Boarding point | Arrival point | Departure times | Fare from | Seating |
|---|---|---|---|---|
| Alor Setar | Melaka Sentral | 9:30 PM | RM86.00 | 1+2 |
| Bukit Mertajam | Melaka Sentral | 9:30 AM10:30 PM | RM80.00 | 1+2 / 2+2 |
| Chai Leng Park – Caltex | Melaka Sentral | 9:10 AM10:35 AM10:35 PM11:20 PM11:35 PM11:59 PM | RM76.00 | 1+2 / 2+2 |
| Changlun | Melaka Sentral | 8:30 PM | RM90.00 | 1+2 |
| Gurun | Melaka Sentral | 10:30 PM | RM80.00 | 1+2 |
| Kulim | Melaka Sentral | 9:00 AM10:00 PM | RM73.00 | 1+2 / 2+2 |
| Parit Buntar | Melaka Sentral | 10:30 AM11:45 PM | RM70.00 | 1+2 / 2+2 |
| Penang Sentral (Butterworth) | Melaka Sentral | 9:00 AM10:30 AM10:30 PM11:15 PM11:30 PM11:58 PM | RM76.00 | 1+2 / 2+2 |
| Sungai Nibong | Melaka Sentral | 9:45 AM9:45 PM | RM76.00 | 1+2 / 2+2 |
| Sungai Petani | Melaka Sentral | 8:15 AM10:45 PM | RM80.00 | 1+2 / 2+2 |
| Terminal Meru Raya (Ipoh Amanjaya) | Melaka Sentral | 11:30 AM12:45 PM | RM55.00 | 1+2 |
To Selangor
| Boarding point | Arrival point | Departure times | Fare from | Seating |
|---|---|---|---|---|
| Chai Leng Park – Caltex | Kajang | 8:05 AM10:05 AM | RM55.00 | 1+2 |
| Chai Leng Park – Caltex | Terminal 17, Shah Alam | 9:05 PM | RM60.00 | 1+2 |
| Kamunting | Kajang | 9:30 AM | RM45.00 | 1+2 |
| Parit Buntar | Kajang | 11:00 AM | RM55.00 | 1+2 |
| Penang Sentral (Butterworth) | Kajang | 8:00 AM10:00 AM | RM56.00 | 1+2 |
| Penang Sentral (Butterworth) | Terminal 17, Shah Alam | 9:00 PM | RM60.00 | 1+2 |
| Sungai Petani | Terminal 17, Shah Alam | 8:00 PM | RM60.00 | 1+2 |
| Terminal Meru Raya (Ipoh Amanjaya) | Kajang | 10:45 AM12:30 PM | RM36.00 | 1+2 |
| Terminal Meru Raya (Ipoh Amanjaya) | Terminal 17, Shah Alam | 11:15 PM | RM34.00 | 1+2 |
To Thailand
| Boarding point | Arrival point | Departure times | Fare from | Seating |
|---|---|---|---|---|
| JB Merlin Tower | Chee Uthit Rd, Hatyai | 5:00 PM6:00 PM7:00 PM | RM125.00 | 1+2 |
| JB Merlin Tower | Sadao Immigration Checkpoint | 5:00 PM6:00 PM7:00 PM | RM125.00 | 1+2 |
| Johor Bahru (JB Larkin Term.) | Chee Uthit Rd, Hatyai | 5:30 PM6:30 PM7:30 PM | RM125.00 | 1+2 |
| Johor Bahru (JB Larkin Term.) | Sadao Immigration Checkpoint | 5:30 PM6:30 PM7:30 PM | RM125.00 | 1+2 |
| Johor Jaya | Chee Uthit Rd, Hatyai | 4:00 PM5:00 PM6:00 PM | RM125.00 | 1+2 |
| Johor Jaya | Sadao Immigration Checkpoint | 4:00 PM5:00 PM6:00 PM | RM125.00 | 1+2 |
| Tun Aminah | Chee Uthit Rd, Hatyai | 6:00 PM7:00 PM8:00 PM | RM125.00 | 1+2 |
| Tun Aminah | Sadao Immigration Checkpoint | 6:00 PM7:00 PM8:00 PM | RM125.00 | 1+2 |
Boarding points
KPB Ekspress picks up at 22 locations. Arrive at least 20 minutes before departure — coaches do not wait, and no-shows are not refunded.
- Alor Setar
- Bukit Mertajam
- Chai Leng Park – Caltex
- Changlun
- Gurun
- Hentian Duta
- JB Merlin Tower
- Johor Bahru (JB Larkin Term.)
- Johor Jaya
- Kajang
- Kamunting
- Kulim
- Melaka Sentral
- Muar
- Parit Buntar
- Pasir Gudang
- Penang Sentral (Butterworth)
- Sungai Nibong
- Sungai Petani
- TBS (Terminal Bersepadu Selatan)
- Terminal Meru Raya (Ipoh Amanjaya)
- Tun Aminah
Frequently asked questions
How much does a KPB Ekspress ticket cost?
KPB Ekspress fares start at RM21.00 one way, depending on the route and coach class.
Where does KPB Ekspress go?
KPB Ekspress serves 9 states — Johor, Kedah, Perak, Kuala Lumpur, Pulau Pinang, Negeri Sembilan, Malacca, Selangor, Thailand.
How do I book a KPB Ekspress ticket?
You can book KPB Ekspress tickets online with instant e-ticket confirmation, or buy at the counter subject to availability.
What time do KPB Ekspress buses depart?
Departures run from 12:30 AM through to 11:59 PM, depending on the route.