Penang is a cultural melting pot located on the northwest coast of Malaysia. For such a small island, Penang has so much to offer – vibrant culture, colourful heritage, amazing food, urban wonders, and untouched rainforest. At its heart is George Town, a UNESCO World Heritage Site, and a city rich in history.
You have 4 options when travelling the 290km distance from Kuala Lumpur to Penang: by train (5 hours), by bus (5.5 to 6 hours), by flight (1 hour), or by taxi (4.5 hours). Fares range from 40.50 MYR ($9.50) to 813 MYR ($190).
The train is the most convenient way to travel from Kuala Lumpur to Penang. There is no direct train though. This means you will have to take one up to Butterworth and then transfer (via a walkway from the station) to a ferry going to Penang Island. Combined fares start from 79 MYR ($18.50) and the total journey lasts about 5 hours.
The bus is the cheapest option, with tickets from 40.50 MYR ($9.50). You can choose to take a direct bus to Penang Island (5 hours) or one that goes to Butterworth and then take the ferry from there (5.5 – 6 hours).
Take in mind that the drop-off point of the direct bus is 10km from George centre instead of the 2km distance from the ferry port. For this reason, the indirect option might be as convenient than the direct option.
The flight is the quickest option as it takes only 1 hour. However, we don’t really recommend short-haul flights like this as they are very harmful to the environment. Unless you’re really short on time, we suggest that you take the train or bus instead. Airfares start from 107 MYR ($25).
The taxi is the most expensive option starting at 813 MYR ($190). However, it’s a good alternative if you prefer to have your own private vehicle and be delivered to your doorstep.
What we love most about taking the train is the comfort and serene rural views that flash past the window. Although it doesn’t go all the way to Penang, you get off at Butterworth Train Station and then smoothly transfer to a ferry bound for the island.
Step 1: Kuala Lumpur to Butterworth by Train
Duration: 4 – 4.5 hours Cost: 63 MYR ($15)
The KTM Komuter operates 2 trains from Kuala Lumpur Sentral to Butterworth Station daily. These depart at 11:15 and 17:31, with a travel time of 4 to 4.5 hours. On weekends (Friday to Sunday), there is also an additional trip that departs at 08:05.
There are 2 kinds of trains: ETS Platinum and ETS Gold. The main difference is that the Platinum trains normally reach the destination faster than the Gold ones.
Train fares start from 63 MYR ($19) for a standard seat when you book with Baolau.
Butterworth Train Station is connected to Pangkalan Sultan Abdul Halim Ferry Terminal by a walkway, so you won’t have a hard time finding it. Keep in mind though that this walkway includes some stairs, so the 10-min walk can be tiring if you’re carrying a lot of luggage.
At the terminal, you can purchase your ferry ticket for 3 MYR ($0.70).
Ferries depart every 20 to 30 minutes from 05:20 to 22:00, and every 40 minutes until the last trip at 00:40. They dock at Weld Quay in Penang Island, which is just a 5-minute taxi ride (2km) from George Town city centre.
Once you arrived at Penang, you can easily take a taxi from the port, but you can also order one via Grab. Taxi fares start at 13 MYR ($3). Alternatively, you can take Bus Line 101 for 4.50 MYR ($1), just make sure this passes somewhere near your hotel. Last, you can even walk to the centre in just 20-30 minutes.
Kuala Lumpur to Penang by Bus
Duration: 5.5 – 6 hours Cost: 40.50 MYR ($9.50)
Thanks to the connecting highway of Penang Island and the mainland, there are also direct buses that can bring you straight to Penang Island, without having to take a ferry.
Instead of taking a direct bus, you can also take an indirect option with the bus, by travelling to Butterworth first. Butterworth is the same station where the train arrives. From there you will need to take the same ferry as explained in step 2 of the train ride.
Although this sounds a bit more complicated, it’s still a very easy alternative with the advantage of more luxurious buses when travelling to Butterworth.
In addition, the distance from the arrival point in Penang to George Town centre is much shorter when arriving with the ferry (2km) instead of the direct bus (10km).
Kuala Lumpur to Penang by a direct Bus
Duration: 5.5 – 6 hours Cost: 40.50 MYR ($9.50)
The bus is an affordable way to travel from Kuala Lumpur to Penang. There are at least 2 companies that operate direct trips for this route: KKKL Express and Billion Stars Express.
These buses depart from 06:00 in the morning until 23:00 almost every 30 minutes, so you can be pretty flexible with your schedule.
However, we don’t recommend travelling in the evening as you will arrive in the middle of the night or very early in the morning in Penang. This doesn’t really help if you’re trying to save on accommodation and on top of that, you’ll probably end up having a pretty bad night’s sleep!
We recommend taking the KKKL Express as they receive very good reviews. You can book a ticket online at Baolau for 40.50 MYR ($9.50).
Below are our recommended schedules, but you can also check more departures through the provided booking link to Baolau.
Buses depart from Kuala Lumpur Bus Terminal and arrive at Sungai Nibong Bus Terminal, about 10km from the city centre.
If you’re staying at George Town, you can either take a bus (Line 102) for 50 minutes or a taxi for around 20 minutes. Fares start at 4.50 MYR ($1) and 38.50 MYR ($9), respectively.
Kuala Lumpur to Penang by an indirect Bus
Duration: 5 – 6 hours Cost: 63 MYR ($15)
If you prefer a little adventure, you can add a stop to your journey and hop on a bus to Butterworth. From here, just like the train, you can take a ferry to your final destination of Penang.
Step 1: Kuala Lumpur to Butterworth by Bus
Duration: 5 hours Cost: 47 MYR ($11)
KPB Ekspres and Transnational operate trips from Kuala Lumpur to Butterworth. The one advantage of taking this indirect route is the comfort, as VIP buses are available. A ticket costs 47 MYR ($11) when you book online via BookAway.
The same as the first option, Penang Sentral is connected to the ferry terminal by a walkway. A ferry ticket costs 3 MYR ($0.70) and you can cross to Weld Quay on Penang Island in 10 to 20 minutes, depending on the water condition.
Ferries depart every 20 to 30 minutes from 05:20 to 22:00, and every 40 mins until the last trip at 00:40.
Most likely, once you arrive in Penang, you can take a 5-minute taxi ride to reach your hotel. If you’re staying in George Town, you can also take the bus (Line 101), but this may take longer as it makes a lot of stops. Another alternative is to walk to the centre in 20-30 minutes.
Kuala Lumpur to Penang by Flight
Duration: 1 hour Cost: from 107 MYR ($25)
When travelling by flight from Kuala Lumpur to Penang, you can depart from 2 airports: Subang Airport or Kuala Lumpur Airport (KLIA). Subang Airport is closer to Kuala Lumpur city centre, but Kuala Lumpur Airport normally offers cheaper flights.
All flights arrive at Penang Airport, located in the southern end of the island. From here, George Town is 18km away.
To complete the final step of reaching your hotel, you have two options: take a taxi for around 30 minutes, costing around 30 MYR ($7) or you can take the bus for 1 hour, costing 3 MYR ($0.70). There are several bus lines available, but make sure you board one that stops near your hotel.
Flight via Subang Airport (SBZ)
Duration: 1 hour Cost: from 141 MYR ($33)
Thai Lion Air, Malindo Air, Firefly and Malaysia Airlines offer several flights daily from Subang Airport (SBZ) to Penang. Fares start from 141 MYR ($33) and travel time is 1 hour.
Subang Airport is located some 30 minutes away from Kuala Lumpur city centre.
You can reach it via a train from KL Sentral, via bus #U81 (or you can ask your hotel if there are other available buses from your location), or by taxi. Fares start from 2 MYR ($0.50).
Flight via Kuala Lumpur International Airport (KUL)
Duration: 1 hour Cost: from 107 MYR ($25)
Air Asia normally offers the cheapest flights from Kuala Lumpur Airport to Penang. Tickets tend to start at 107 MYR ($25) and travel time is also 1 hr. Other carriers offering flights for this route are Thai Lion Air, Malaysia Airlines, and Malindo Air.
KL Airport is 30 minutes to 1 hour away from the city centre, which can be reached by bus, train or taxi. Visit our page on Kuala Lumpur Int’l Airport for more details.
Kuala Lumpur to Penang by Taxi
Duration: 4.5 hours Cost: 813 MYR ($190)
We don’t really recommend taking a taxi from Kuala Lumpur to Penang as it is quite expensive and the other options are pretty comfortable. However, if you are set on getting a private ride, taxis are available to book online via BookAway from 813 MYR ($190).