Bangkok to Chiang Mai

Overview Compare Flight Train Bus

How to get from Bangkok to Chiang Mai

Chiang Mai, Thailand’s second-largest city, has a lot to offer to every kind of traveller. Besides visiting its vibrant night markets and festivals, you can trek in the mountains or go temple-hopping. Once you’re in Chiang Mai, you can easily travel to other popular destinations in Northern Thailand, like Pai and Chiang Rai.

The distance from Bangkok to Chiang Mai is 695 km (1,120 miles). In this post, we compare the 3 options to travel from Bangkok to Chiang Mai: by flight (1-1.5 hours), by train (10.5-14.5 hours), or by bus (9.5-10.5 hours). Ticket prices range from 530 THB ($14.50) to 760 THB ($21).

3 ways to get from Bangkok to Chiang Mai

Transport modeDurationCostsAvailability
Flight1-1.5 hours730 THB ($20)Check Flights
Train10.5-14.5 hours760 THB ($21)Check Train Tickets
Bus9.5-10.5 hours530 THB ($14.50)Check Bus Tickets

Flights from Bangkok to Chiang Mai are cheap and the fastest option. The trip takes only about 1-1.5 hours and the ticket cost starts 730 THB ($20).

TIP: If you decide to travel by plane, please consider including a carbon compensation fee to help reduce your impact on the environment.

The train can be a great alternative. If you book a sleeper birth, you can sleep throughout the 10.5-14.5 hours journey. The cost of a sleeper berth ticket for the night train starts from 760 THB ($21).

The bus is the cheapest option and is a little faster than the train. However, it won’t come with the comfort of a bed like the train offers. The journey takes 9.5-10.5 hours and has multiple options to choose from.

PRO TIP: Instead of travelling straight to Chiang Mai, consider making a stopover in Sukhothai. This ancient city is located halfway to Chiang Mai and is well known for its numerous historical sites and ruins.

Itinerary from Bangkok to Chiang Mai

Bangkok to Chiang Mai by Flight

Duration: 11.5 hours
Cost: 730 THB ($20)
Duration: 11.5 hours
Cost: 730 THB ($20)

Flying to Chiang Mai from Bangkok is the fastest option.

Airlines that operate along this route include Vietjet Air, Thai Lion Air, Nok Air, Air Asia, and Thai Airways.

These low-cost airlines offer many flights daily with prices starting as low as 730 THB ($20) if you book in advance. Otherwise, expect to pay around 1,000 THB ($27.50) for a direct flight from Bangkok to Chiang Mai.

You can also book flights by Thai Airways, but they are typically more expensive.

For the best flight offers, we recommend checking Skyscanner.

Check Flights on Skyscanner

Airports in Bangkok

Some flights depart from Suvarnabhumi Airport (BKK), located east of Bangkok which is a 45-minute away from the centre.

You can also book a flight from Don Mueang Airport (DMK). This airport is about a 30-minute drive from the Bangkok city centre.

Chiang Mai Airport

All flights land at Chiang Mai Airport (CNX). Chiang Mai centre is just a 15-minute trip by car from the airport. You can also take public buses, taxis, songthaew, and tuk-tuk to go around the city.

Bangkok to Chiang Mai by Train

Duration: 10.514.5 hours
Cost: 760 THB ($21)
Duration: 10.514.5 hours
Cost: 760 THB ($21)

There are numerous trains travelling from Bangkok to Chiang Mai from morning to evening.

Tickets for a 3rd class seat start from 230 THB ($6). However, we don’t think many people want to book a seat on a train ride that lasts +10 hours.

Thanks to the airconditioned sleeper berths, you can sleep your way throughout the longest part of the journey. Not only it is a budget-friendly way to get from Bangkok to Chiang Mai, but it is also better for the environment and an amazing way to travel.

Sleeper berths start from 760 THB ($21), which is about the same price as the cheapest plane tickets. If you add up the costs of baggage and the taxi to/from the airports, this sleeper berth will still be a cheaper option, though.

Also during high season, flight tickets can get more expensive, making the train a more interesting option to travel from Bangkok to Chiang Mai.

Departure from Bangkok

To go from Bangkok to Chiang Mai via train, you need to go to Hua Lamphong Train Station. You can either hop on the MRT, hail a taxi or a tuk-tuk to reach this train station from downtown Bangkok. Travelling to the train station from Bangkok centre will likely take around 15 minutes, depending on the traffic and your location.

Train Schedules from Bangkok to Chiang Mai

TrainSchedule2nd Class Sleeper A/C
RP10913:45-04:05760 THB ($21)
Check Train Tickets
SP918:10-07:151,040 THB ($28.50)
Check Train Tickets
SP1319:35-08:40840 THB ($23)
Check Train Tickets
EX5122:00-21:10820 THB ($22.50)
Check Train Tickets
*All quoted prices are for 2nd Class Sleeper, including A/C.

Trains can be the cheapest option if you book a 3rd-class seat for as low as 230 THB ($6). But it won’t give the same level of comfort that the 2nd-class berths and 1st-class tickets can offer. Tickts for first-class berth starts at 1,655 THB ($45.50).

Arrival in Chiang Mai

The train arrives at Chiang Mai Railway Station which is located 15 minutes away from the city centre. You can arrange for transportation from the train station to your hotel upon arrival. There are also taxis, songthaew or tuk-tuk that you can ride to go to the centre.

Bangkok to Chiang Mai by Bus

Duration: 9.510.5 hours
Cost: 530 THB ($14.50)
Duration: 9.510.5 hours
Cost: 530 THB ($14.50)

Travelling by bus can also be a good alternative to the plane if you travel on a budget.

Although it doesn’t come with a bed, It is a bit faster than the train and the cost starts at 530 THB ($14.50).

Given this length of time, we recommend leaving Bangkok in the evening so you can rest throughout the journey. Once you arrive in Chiang Mai in the morning, you can go sightseeing.

Since many locals and tourists travel from Bangkok to Chiang Mai, several buses are available from morning to evening. The whole journey takes up to 10.5 hours depending on the number of stops the driver makes for toilet and meal breaks.

Departure from Bangkok

Buses depart from Bangkok Bus Terminal (Chatuchak – Mochit). The taxi drive to Mochit terminal from Bangkok centre just takes about 20-30 minutes.

The table below shows an overview of the different bus companies.

Bus schedules from Bangkok to Chiang Mai

Bus OperatorScheduleCost
The Transport Co. Ltd
19:50-05:20530 THB ($14.50)
Check Bus Tickets
Bangkok Busline
610 THB ($16.50)
Check Bus Tickets
Thai Sriram
17:30-03:30710 THB ($19.50)
Check Bus Tickets
Sombat Tour
740 THB ($20.50)
Check Bus Tickets
Budsarakham Tour
18:30-04:45875 THB ($24)
Check Bus Tickets

Arrival in Chiang Mai

All buses arrive at Chiang Mai Bus Terminal 2. This terminal is located about 4 km east of Chiang Mai Old Town. At the bus terminal, you can find several buses, minivans, and taxis that go to the Chaing Mai Old City.

Most buses offer VIP tickets, which usually feature reclining seats, more legroom, and an onboard toilet. Keep in mind that the offerings of VIP buses vary per company.

Booking bus tickets around Koh San Road

Booking your bus trip with your hotel or with a travel agency in the Khao San Road area is also possible. You will see countless travel agencies offering tickets from Bangkok to Chiang Mai.

However, tickets are usually more expensive compared to booking online.

Also be aware that some of the companies’ drop-off areas can be unofficial bus stops outside the city centre (for example: on the side of a highway or main road). This means you may need to take another taxi or tuk-tuk to reach your destination. Therefore, make sure to ask where the bus drops off passengers prior to booking your ticket.

Most popular routes in Thailand

Bangkok to Chiang Mai

Phuket to Surat Thani

Bangkok to Phuket

Chiang Rai to Chiang Mai

Koh Samui to Koh tao

Koh Phangan to Koh Tao

Phuket to Krabi

Was this post helpful?

Click on a star to rate it!

Average rating 5 / 5. Vote count: 7

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Your feedback is very valueable to us

How we can improve this post?