Bangkok to Vientiane: Bus, Train and Flight Guide (2026)

Bangkok to Vientiane is a classic Southeast Asia overland journey — the Thai and Lao capitals connected by overnight bus, train, or a short flight. Since the opening of the Laos–China Railway in 2021, Vientiane has also become a hub for onward travel deeper into Laos by high-speed train. This guide covers every option.

🎟 [Travelpayouts 12Go widget: Bangkok → Vientiane transport]


Option 1: Overnight Bus via Nong Khai (Budget)

The most popular budget option. Overnight buses depart from Bangkok\’s Mo Chit Northern Bus Terminal to Nong Khai (the Thai border town) — approximately 10–11 hours, from ~$12–20 USD. In Nong Khai, cross into Laos at Thanaleng border (via the First Thai-Lao Friendship Bridge) and take a tuk-tuk or taxi to Vientiane city center (~25 km, ~$8–10 USD). Several operators including Transport Co. and private VIP buses cover this route.

Some operators sell through-tickets Bangkok → Vientiane including the border transfer — convenient but you pay a premium. Total journey approximately 12–14 hours.

🎟 [Travelpayouts 12Go widget: Bangkok → Nong Khai overnight bus]

Option 2: Overnight Train to Nong Khai (Most Scenic)

The State Railway of Thailand runs daily overnight trains from Bangkok Hua Lamphong (and Bang Sue Grand Station) to Nong Khai — approximately 11–12 hours. The train crosses into Thailand\’s northeast through flat rice plains and provincial towns. Sleeper classes available.

  • 2nd class fan sleeper: ~500–700 THB (~$14–19 USD)
  • 2nd class air-con sleeper: ~900–1,100 THB (~$25–30 USD)
  • 1st class sleeper (private): ~1,300–1,600 THB (~$36–44 USD)

From Nong Khai station, cross to Laos via the Friendship Bridge — the SRT train used to continue across the bridge to Thanaleng (Lao side) but this cross-border train service has been suspended; check current status at the station.

🎟 [Travelpayouts 12Go widget: Bangkok → Nong Khai train]

Option 3: Fly Bangkok to Vientiane (Fastest)

Lao Airlines and Bangkok Airways operate direct flights from Suvarnabhumi (BKK) to Vientiane Wattay International Airport (VTE) — approximately 1 hour 10 minutes. Thai AirAsia also serves this route from Don Mueang (DMK). Fares from ~$70–120 USD one way.

✈️ [Travelpayouts Kiwi widget: Flights BKK/DMK → VTE (Vientiane)]


The Border Crossing: Nong Khai / Thanaleng

  • Thai exit immigration: Nong Khai immigration office, next to the bridge entrance
  • First Thai-Lao Friendship Bridge: Cross by tuk-tuk shuttle (~$1) — you cannot walk across
  • Laos Visa on Arrival: $40 USD at Thanaleng — new US dollar bills, one passport photo. Or e-Visa in advance at laoevisa.gov.la ($35 USD)
  • Thanaleng → Vientiane center: ~25 km, shared taxi ~$5–8 per person or tuk-tuk ~$10–15 for the vehicle

Onward from Vientiane by Laos–China Railway

Since 2021, Vientiane (Khamsavath station, ~15 km from city center) connects to Luang Prabang and Vang Vieng by high-speed train — one of the most significant transport upgrades in Laos history.

  • Vientiane → Vang Vieng: ~50 minutes, from ~$10 USD
  • Vientiane → Luang Prabang: ~2 hours, from ~$14 USD

🎟 [Travelpayouts 12Go widget: Vientiane → Luang Prabang train (Laos-China Railway)]


Where to Stay in Vientiane

  • Nam Phu Fountain area: Central, walking distance to most sights. Mixture of budget guesthouses and mid-range hotels.
  • Mekong riverside: Sunset views over the river to Thailand. Night market runs along the promenade evenings.
  • Near Patuxai (Victory Gate): Quieter area, good for budget accommodation, 10 minutes walk from central restaurants.

🏨 [Travelpayouts Hotellook/Agoda widget: Hotels in Vientiane]


Quick Comparison

OptionTimeCost fromBest for
Overnight bus via Nong Khai~12–14 hours~$15 USDBudget
Overnight train via Nong Khai~13–15 hours~$20 USDComfortable, scenic
Direct flight BKK → VTE~2.5 hours total~$70 USDSpeed

Related Guides

This post contains affiliate links. When you book through them, we may earn a small commission at no extra cost to you.

Leave a Comment

Your email address will not be published. Required fields are marked *