Contents
To highlight how simple the Singapore to China rail journey can be – I travelled with little more than passport, wallet, phone and clothes. No pre-arranged visas or cash in hand. However, I do recommend using an international eSIM or local eSIMs along with key travel apps, which I share in more detail below.
I also completed this journey in 2 separate stretches. First from Singapore to Bangkok in 2022, just post-covid, then Bangkok to China in 2025. However all information is up-to-date as of 2025 and this is a route I’m familiar with having covered various sections many times through the years. I also shared both these routes more comprehensively at the time (Singapore to Bangkok here and Bangkok to China here, then China Tours) otherwise this is more of a summary of the entire route.
For those really dedicating themselves to the journey it is also possible to travel by MRT from the Southernmost Point of Continental Asia on Sentosa Island in Singapore. However, I personally prefer a more laissez faire, last minute approach to travel, and I kind of fail at the first hurdle here with the train from Singapore to Malaysia.
Singapore to Johor Bahru by Train
It is possible to take a train from Singapore to Malaysia, a short 5 minute, 2.2 kilometre stretch, from the Woodlands Train Checkpoint in Singapore to JB Sentral in Johor Bahru in Malaysia.
However, bookings need to be organised in advance, and I’ve never found myself with the time to do so. Instead I followed a similar route by bus, from the Woodlands Bus Interchange to JB Sentral.
The bus, like the train, normally takes 30 to 60 minutes, including immigration on both sides, but during peak travel times the bus can take hours.
By bus passengers must disembark twice—first at Singapore immigration and then again at Malaysian customs—before continuing into JB Sentral Station in Johor Bahru.
By the KTM Shuttle Tebrau is a 5-minute train service from Singapore’s Woodlands Train Checkpoint to Johor Bahru’s JB Sentral. Tickets must be booked in advance, especially for weekends.
While it is possible to continue the journey to Kuala Lumpur on the same day, a very early start is necessary, and times at immigration can be unpredictable with the bus journey.
During weekends, for example, when Singaporeans hop the border for more affordable entertainment in Malaysia, we’ve been caught in immigration queues for up to 4 hours.
An overnight stay in Johor Bahru will likely be necessary before onward travel to Kuala Lumpur. Fortunately it’s just a short walk from JB Sentral to reach the nearby tourist areas of Johor Bahru and it’s a nice enough city to explore.
Johor Bahru to Kuala Lumpur by Train
JB Sentral to KL Sentral
The next stretch is the train from Johor Bahru to Kuala Lumpur, a journey that will soon be much simpler, with a proposed electric train line connecting the two cities.
When implemented, this connection will cut down train travel time from over 7 hours via Gemas, to near 4 hours with a direct train from Johor Bahru to Kuala Lumpur.
However, this proposed line was penned for completion in August 2025, and now in August 2025, it still looks unlikely to be operational in the near future.
For now the journey from Johor Bahru takes a detour via a small town called Gemas, before forwarding on to Kuala Lumpur.
Again trains leave from JB Sentral station, and take roughly 4 hours to reach Gemas station. For tickets, I personally turned up to the station to buy before departure which is similar to what I do for each train journey up to Bangkok.
However, it is advised to book in advance, and moreso on weekends and holidays. This can be done online through the official KTMB website.
So from Johor Bahru I travelled on the 8:30AM train to ensure onward travel to Kuala Lumpur. It is an early start and the train to Gemas alone takes 4 hours 40 minutes.
Thankfully the train is comfortable for Southeast Asia standards, with reclining seats, clean toilets, a dining car, and nice enough scenery along the way.
It is also best to book a forward-facing seat, otherwise you’ll be travelling backwards, which can feel a bit weird.
While Gemas is a potential overnight stopover on this journey, the better option is very much Johor Bahru, and with a 2 hour 30 minute stopover in Gemas I failed to find anything of interest nearby.
The next stretch is the onward train from Gemas to Kuala Lumpur. On this instance I had bought my tickets earlier at the JB Sentral station in Johor Bahru, and I recommend doing the same. Or at least buy in advance. Otherwise you might find yourself stuck in Gemas.
From Gemas we switch from old school diesel locomotives to a speedier electric train for the 2 hour 30 minute stretch to KL Sentral Station in Kuala Lumpur.
Again the train is comfortable with reclining seats, clean toilets, dining car, and nice enough scenery along the way. But some seats are again backwards-facing so be aware of this when booking tickets.
So our next destination is Kuala Lumpur, the capital city of Malaysia. While possible to continue on to Butterworth on the same line, for a potential stopover in Penang, it will be late, with a tight window to reach the ferry connection to Penang Island.
Otherwise Kuala Lumpur is one of the must-visit destinations on this train itinerary, and I’ll be sharing the best stopovers and destination highlights along the way (our guide to Kuala Lumpur here).
After arriving to KL Sentral station there is an easy connection to Kuala Lumpur’s convenient Monorail system. In turn the monorail connects to the convenient LRT and MRT lines making it easy to explore the city.
I personally recommend staying in the KLCC area, ideally with hotel views over the iconic Petronas Twin Towers, the Crown Jewel of Southeast Asia, before travelling out to other areas. However it is the most expensive part of KL.
Otherwise many opt for the lively Bukit Bintang area which is handy both for the monorail, and Jalan Alor food street, which is normally my first port of call anyway (our Malaysian food guide here).
For those new to Kuala Lumpur I’d recommend at least 2-3 days to explore the city, then maybe some side quests to Batu Caves or Selangor, before embarking on the next stretch to Penang Island.



Kuala Lumpur to Penang by Train
KL Sentral to Butterworth
It is possible to rush through this journey, skipping Johor Bahru, and again, Kuala Lumpur. In fact, you could be boarding a train to Bangkok by now, but this (currently) means overnighting in relatively boring places like Gemas and Butterworth instead of experiencing some of South East Asia’s most amazing destinations like Kuala Lumpur and Penang.
Next stop Penang, hopping on the monorail to KL Sentral station, to pickup train tickets to the port city of Butterworth. While the island of Penang is our next destination it does require a short ferry ride to reach from the port of Butterworth. But it is very much worth this fairly simple detour.
Otherwise, for those in a hurry, it is possible to bypass Penang, to continue north towards the Thai border for onward travel to either the southern Thai city of Hat Yai or the overnight train to Bangkok.
So the train journey to Butterworth normally takes around 3 and a half to 4 hours on the ETS Electric Train lines depending on the service. There are 3 options here with the only real noticeable difference being the number of stops and time taken to reach Penang.
The fastest is the Express at 3 and a half hours, then it’s Platinum at around 4 hours, and then Gold which I’d give a miss on this route.
Again, each option is comfortable with reclining seats, clean toilets, dining car, and alternating backwards-facing seats. But the scenery and views are a bit more diverse on this stretch, passing wetlands, before reaching the coast on the run up to Butterworth.
From arrival at Butterworth is the onward journey to the island of Penang. A fairly simple connection walking to and through the nearby Penang Sentral transit hub following the signs to Penang Sentral and then to the ferry.
Ferries then leave from a connecting port at Penang Sentral and take around 15 minutes with departures every 30 minutes through normal hours and every 20 minutes during peak hours.
Not long ago they used car ferries for this crossing, back in the good old days, but they were cancelled following Covid in 2021, and now it’s a pedestrian-only route.
Otherwise vehicles, including taxis and buses leaving Butterworth, can use the nearby bridge crossing to Penang Island.
After crossing the Penang Strait, the ferry arrives to Georgetown, a designated UNESCO World Heritage city famous for its colonial architecture, colorful street art, rich multicultural heritage, and diverse street food.
It is also an easily walkable city and a short walk finds the main tourist areas from the arrival terminal.
In Georgetown, I would normally recommend staying around the Chulia Street area, which, while a bit touristy, offers some great boutique and heritage hotel options, as well as some of the best food in Penang and Malaysia.
While Penang is an island destination, I don’t think I’ve once seen sand in my many visits. For a beach retreat, I would always hop on another boat from Penang to Langkawi, but again this crossing was also cancelled over Covid and travel to Langkawi is easier from the mainland.
However, I am more than happy exploring the diverse melting pot of culture and cuisine in Penang, one of the best foodie cities in the world, and an essential highlight of this awesome southeast rail journey. Here for our quick guide to Penang
Penang to Hat Yai by Train
Butterworth to Hat Yai Junction
Leaving Penang, we follow the same route as our arrival, only in reverse, taking the ferry to the pier at Penang Sentral, then follow the signs through Penang Sentral to the Butterworth train station. From Butterworth it’s then a couple of hours on the train to the border crossing between Malaysia and Thailand at Padang Besar.
This stretch is a long stretch, travelling from Penang to Bangkok, crossing at the Thai-Malay border, before an overnight train to the capital city of Thailand. However there is also the possibility of an overnight stay in Hat Yai.
This is actually a route I would take relatively often when living in Thailand, with regular visa runs to the Thai consulate in Penang, something which is no longer necessary with the new Thai e-visa system. While I don’t miss the visa runs I do miss my regular visit to Penang.
Anyway, this journey used to be much simpler with direct trains travelling between Bangkok and Butterworth. But these were discontinued back in 2016 with the introduction of electric lines on the Malaysia side of the border, and, while they were said to be reinstated in 2025, again, it doesn’t look likely.
Otherwise, from Butterworth to the border, travel is now on commuter trains, which are not quite as comfy as previous trains. No toilets, no food services, and it’s not possible to reserve trains or seats in advance.
However, I’ve personally never had any issue finding seats available at Butterworth Station, and there is always a standing option if stuck. While standing does sound terrible there will be many comings and goings through the 2 hour journey to reach the border so it won’t take long for a seat to be free.
The train from Butterworth takes around 2 hours to reach the border town of Padang Besar, so it’s best to leave Butterworth at around 2-3PM if planning to take the connecting overnight train from the border at Padang Besar to Bangkok which depart in the early evening.
The timing does work well with midday hotel checkouts in Penang, however, earlier starts give the option for a quick stopover in the southern Thai city of Hat Yai which I do recommend.
Otherwise, the next stop is Padang Besar, the border town between Malaysia and Thailand, to pass through immigration, on both sides, before continuing on this rail journey. Normally immigration takes around 20-30 minutes, with a quick stamp out of Malaysia, then a stamp in on the Thai side of the border.
Most Western passports will be visa-exempt which allows for a stay of up to 30 days for tourism in Thailand (in 2025). However it is necessary to complete an online arrival card these before reaching the border and it’s best to do this in advance with reliable internet connection.
There are then two option for onward travel from Padang Besar; either to hop onto the Special Express overnight train to Bangkok, or to forward on to Hat Yai where there are better options for onward train travel.
From the Thai border to Hat Yai there are regular 3rd class trains, taking around 45 minutes, which for me is the best part of this journey. Old school carriages, revolving fans, clickity-clack, head out the window. Proper train travel. Woo wooo!
While I do love high-speed trains for speed and efficiency, and have travelled all over Japan on the superfast shinkansen network, from the southern islands to northern Hokkaido, they do lack the romance and adventure of the old school locomotives.
It’s like ditching the EV for a classical car, and for me, the old, unreliable trains of Thailand, will always be my favourite mode of transport, regardless of how slow and inefficient they are. They kind of get there when they get there.
Hat Yai to Bangkok by Train
Hat Yai Junction to Krung Thep Amphiwat
There is no hurry with the border crossing for those on a relaxed schedule, and Hat Yai is a worthwhile stopover, so I’d recommend travelling early from Penang, and maybe even consider an overnight stay in Hat Yai. Just be sure to grab your onward tickets at Hat Yai Junction (Hat Yai Train Station) before going on to explore.
While Hat Yai is the largest city of southern Thailand, it’s still relatively small, and the city centre can easily be covered on foot from the train station. Otherwise it is used more as a waypoint for most visitors passing the city en route to the southern islands of Thailand. Most notably, the island of Ko Lipe.
These islands can also be used as an alternative maritime route, with ferries from Penang to Langkawi, then Langkawi to Ko Lipe. However, the Penang – Langkawi route was rerouted during covid, and the Langkawi to Ko Lipe route is seasonal, and, well, you’d be missing out on all the awesome trains.
Anyway, from Hat Yai junction there are better options for onward travel, including the same special express train from the border at Padang Besar, along with 2-3 sleeper train options all leaving in-and-around 6PM. All arrive early morning in Bangkok with a few hours to wait for hotel check-ins.
Personally I would go with the more modern CNR train, which is newer, cleaner, more comfortable, and the journey is an hour faster than the next fastest option. While I’ve always winged this journey in this past, you might want to book the CNR train in advance to ensure seat/berth availability.
With all trains, I would go with the 1st class cabins when travelling as a couple (Fanfan prefers to fly and meet me there), or lower berth 2nd class sleeper carriages when travelling solo. The lower berth option offering scenic window views through the night, while the upper berth does not.
In 2nd class, when boarding and during the day, the train carriages are set with seats, only to be converted into bunk beds in the evening by a train attendant. Two bunks, upper and lower, each with a mattress, pillow, blanket and a curtain for privacy. Then, the following morning, the bunk beds will be folded back into seats for the remainder of the journey.
While these express trains all arrive in Bangkok early morning, there are some worthwhile stops along the way. First in Surat Thani, the jump off point for the islands of the Gulf of Thailand, including Ko Samui, Ko Tao, and Koh Phangan. Then there’s the laid back resort town of Hua Hin where the main beaches are within walking distance of the train station.
Otherwise Bangkok is the final destination on this line with the train arriving to Krung Thep Aphiwat Central Terminal at around breakfast time the following morning. It is then easy to connect to the convenient MRT underground trains, which in turn connect to the BTS skytrain stations.
For me, Bangkok would actually be the starting point for most of these rail journeys, given I live there. Or to be specific, the Asoke area of Bangkok which makes for a convenient base for tourists given its handy location at the interchange of the skytrain and underground train lines in the Sukhumvit area of Bangkok.
However Bangkok is rather huge, and I regularly find myself staying out in other parts of the city, like the Chao Phraya riverside, or Chinatown, maybe even Silom or the Siam shopping district. Fortunately all these areas are easily connected by skytrain and metro lines these days, as well as travel back to the Krung Thep Amphiwat Station for the next leg of the journey.
Bangkok to Vientiane by Train
Krung Thep Amphiwat to Vientiane Khamsavath
(Check here for a more comprehensive guide from Bangkok to China by Train)
The next stretch from Bangkok to Vientiane is the halfway point of a 48-hour journey to Kunming in the Yunnan Province of China. Again it is a stretch I’ve covered a bunch of times on visa runs to Vientiane which are not longer necessary with Thailand’s new evisa system.
Until recently I would have forwarded by tuk-tuk from the border, until the introduction of a direct train between Bangkok and Vientiane in 2024 made the journey much easier. The train leaving from Krung Thep Aphiwat Station arriving to the Vientiane Khamsavath Railway Station in Laos.
Again I travelled with little more than passport, wallet, phone, and clothes. No laptop, printed paper, or pre-arranged visas. I also travelled solely with Thai baht and neither took or received Lao Kip during my 24 hours stay in Laos.
However, I did pre-book train tickets for both stages of the Bangkok to China journey just to be safe. First was booking the Vientiane to Kunming train using the LCR Ticket App (Lao-China Rail) then Bangkok to Vientiane using d-ticket the official website for the state railway of Thailand (SRT).
So the journey from Bangkok to Vientiane takes roughly 12 hours which includes border procedures and onward travel to the city centre. This involves an overnight sleeper train from Bangkok, leaving the main Krung Thep Amphiwat station in Bangkok, with around a 10 hours to reach the border crossing at Nong Khai. Before immigration and crossing the Thai–Lao Friendship Bridge into Laos.
Again I recommend the lower berth 2nd Class Sleepers for this journey with better space and window views at night. Bookings are made on D Ticket (the official State Railway of Thailand website). Just be sure the origin station is Krung Thep Aphiwat and the destination is Vientiane Khamsavath in Laos.
It’s also best to book in advance as berths for the direct train as they can sell out fast. However, there are alternative options if fully booked. I found this on my recent booking where the direct trains from Bangkok to Vientiane were fully booked at least 2 weeks in advance.
Fortunately it is simple to just switch to the earlier Nong Khai train and follow the same line from there. There are also benefits of the earlier Nong Khai train, which is cleaner and more comfortable, and you can grab breakfast and queue for immigration before the direct Bangkok to Vientiane train arrives.
While the sleeper berths may have been fully booked on the direct train to Vientiane. there will always be lots of 3rd class seats free for the journey from the border at Nong Khai to Vientiane Railway Station. Tickets are also silly cheap at 35 Baht in 2025.
After passing immigration on the Thai side, a quick biometrics check and stamp out, the train crosses Friendship Bridge and takes roughly 35 minutes in total to reach the Vientiane Khamsavath Station. Here you will need to clear immigration before onward travel to Vientiane City Centre. Note, this is not the same station for the Laos China high speed railway.
Most passports will require a visa for Laos, which can be easily sorted in advance with an eVisa for Laos (official website here). However, it is advised to apply 2-3 days before travel, and, on this instance I left it too late.
Instead I opted for a Visa on Arrival, which may have proved the better option, as the queues for arrivals were much larger with local Thai and Lao travellers. Meanwhile there was only a handful in the queue for Visa on Arrival.
Note, payment for visas can be made in US Dollars, or Thai Baht, with the US Dollar proving better with currency exchange. However, to keep it simple, I just opted to pay in Thai Baht.
Either way, everyone must complete arrival/departure cards for Laos which are available on arrival at the Vientiane Railway Station.
It’s then a good 20–30 minute drive from Vientiane Railway Station to the centre of Laos. It is easy to find taxis for onward travel but they are comparatively expensive while the minibus makes a cheaper option for around 35 Baht. Fortunately, almost everywhere in Vientiane accepts Thai baht so you don’t need to stress about currency exchange on arrival.
Things can be a little tricky when arriving to Vientiane without a phone with data connection so it’s a good idea to save a map to the hotel. There are taxis and tuk-tuks but no fixed pricing.
Fortunately Vientiane is a fairly small city to navigate on foot and it’s not far a walk to reach the riverside tourist areas. Otherwise, for those with data connection, the rideshare app Loca is another handy option.
While Vientiane is the main destination on this instance (our guide to Vientiane here) it is also possible to bypass the capital of Laos on the same day with onward travel to Vang Vieng (our guide here) or Luang Prabang (still on the to do list).
This involves shuttling from the main Khamsavath Station in Vientiane to the Don Noun high speed railway station for the Laos-China Railway line. High speed trains then leave at around 13:30 but do not travel as far as China at this time. An overnight stay is therefore necessary in Laos before continuing to China by train.
Vientiane to China by Train
Vientiane Don Noun to Kunming South
The train to China departs from the Vientiane High Speed Railway Station in Don Noun at around 8:00 AM. This means an early start to reach the station which is possible with a 7AM bus from the morning market.
To be safe, however, I booked a hotel taxi for around 300,000 kip. It then takes 20 to 25 minutes to reach the station, giving time to grab a paper ticket from the ticket office, and check through security, before boarding the train to China.
The full journey takes around 9 hours and 30 minutes to Kunming and I personally opt for first-class seats as there is not a large markup on both prices or comfort. I was seated on the left side of the train, which is best for views passing the scenic destinations like Vang Vieng and Luang Prabang, but I was also riding backwards which felt a bit weird. It’s best to double check your seats when booking.
Otherwise the train was relatively empty until Luang Prabang where it quickly filled with holidaymakers on their return journey to China.
So it takes roughly 3 hours 20 minutes from Vientiane to reach the Boten Border crossing where we hop off for immigration leaving Laos. Here you must disembark with your luggage for security and passport checks before we’re boarding the train again.
It is then a short 10 km crossing through Friendship Tunnel into China to disembark, again, with luggage, at the Chinese checkpoint at Mohan for passport control and immigration.
It is best to check if a pre-arranged visa is necessary for China as it is different for may passports. I personally travelled on an Irish passport, which, like many others, allows for 30-day visa-free travel in China. You will also need to complete an arrival card which was handed out earlier after boarding the train in Vientiane giving plenty of time en route to complete them.
Immigration is otherwise fairly quick and simple as the international traveller queue is relatively small when compared to travellers from China and Laos. Then it’s roughly 20 minutes before we’re ready to board again.
From the China border it is a 4 hour 30 minute or so train journey to Kunming, with a number of stops en route, and passengers come and go. So it’s easy to switch seats without an issue. The train then arrives to, also Kunming South Station (Kunmingnan) where onward travel should be simple with a prearranged e-sim and the handy apps.
Onward Travel in China
I do recommend downloading some handy apps before starting the journey from to China, because once on the train to Vientiane it’s a straight journey to the border and these apps make travel a whole lot simpler once in China.
First is LCR Ticket, the official booking app for the Laos-China Railway. Trip.com for hotel bookings. Alipay, for Digital payments. WeChat, for translation and communication, Amaps which is like Chinese Google Maps, and DeeDee Ride hailing is like the Chinese Uber. I share these in more detail in my guide to Kunming and surrounding Yunnan province.
The high-speed trains then travel from Kunming to almost anywhere in China. It’s 7-8 hours to Hong Kong , 10 to 11 hours to Beijing, Shanghai is 12 hours. But Kunming is an exciting city in itself, and the surrounding Yunnan province shares many of my personal highlights of China including Lijiang and Shangri La which are 4 and 6 hours respectively along the same line (our guide to Yunnan Province here).
Otherwise, on this visit, we travelled north to Sichuan province, for the megacities of Chengdu and Chongqing. Both around 7 hours on the high speed trains. Pandas, fiery hot pots, and some of the best food not only in Asia but the world (our simple Chinese street food guide).
We also recommend China as a top destination to visit in 2025 due to its recent relaxed visa policies. Check it out here.




























Interested. How yo go about