Mexico City to Oaxaca

Overview Compare Bus Flight To Stay

How to get from Mexico City to Oaxaca

Oaxaca (pronounced wah-haak-kah) is a city filled with colourful colonial streets, architecturally-beautiful churches, communal squares, and archaeological sites. And those are only a few of the reasons why it has landed itself on the UNESCO world heritage list.

Also called Oaxaca de Juárez, the city is well-known for its food scene, offering several dishes that are unique to just the Oaxaca region. One dish you can’t leave Oaxaca without trying is Mole. It’s a stew-like dish made with Mexican chillies, spices, and the secret ingredient, chocolate. For the drinks, make sure to try the popular Mezcal. A strong upgrade from Tequila and also perfect to wash down your Mole!

Another thing Oaxaca is famous for is its embroidery and textile crafts, which are proudly displayed in the Textile Museum. Or you can even try your hand and join a local workshop to learn about their techniques.

Beyond Oaxaca, there’s plenty to do. You can visit the archaeological ruins of Monte Alban, take a dip at Hierve el Agua waterfall or admire the impressive Tule tree.

New to Oaxaca? Our compact Oaxaca guide shows you the best areas to stay, restaurants you don’t want to miss and many more tips for your visit to Oaxaca!

2 ways to get from Mexico City to Oaxaca

Transport ModeDurationCostsAvailability
Bus7.5 hours562 MXN ($28.50)Check Bus Tickets
Flight2hrs 10m747 MXN ($38)Check Flights

The 2 most popular ways to cover the 462 km (287 miles) from Mexico City to Oaxaca are a 7.5-hour bus ride and a 2-hour-10 minute flight (including transfers). Bus tickets cost around 562 MXN ($28.50) and flight tickets start from 747 MXN ($38).

The bus is the more environment-friendly option from Mexico City to Oaxaca. The buses offer frequent service, with several trips departing throughout the day. Although a bus trip takes around 7.5 hours, many are overnight journeys so you can save on valuable daytime, as well as a night on accommodation. Bus rates start from 562 MXN ($28.50).

If you’re tight on time, flying from Mexico City to Oaxaca doesn’t cost a lot more than taking the bus. It’s actually even cheaper than the premium buses if you book your flight early. Travel time, including airport transfers, take a little over 2 hours. Combined fares start from 747 MXN ($38).

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

Itinerary from Mexico City to Oaxaca

Mexico City to Oaxaca by Bus

Duration: 7.5 hours
Cost: 562 MXN ($28.50)
Duration: 7.5 hours
Cost: 562 MXN ($28.50)

There are many direct buses operating from Mexico City to Oaxaca. The bus ride itself takes more or less 7 hours. Quite long, but it’s a scenic route so you can just think of it as a road trip.

Step 1: Getting to the bus station in Mexico City

Duration: 20 minutes
Cost: 6 MXN ($0.30)
Duration: 20 minutes
Cost: 6 MXN ($0.30)

Buses depart from different locations, but the most popular and most convenient is Mexico City’s main station, Terminal de Autobuses de Oriente TAPO. TAPO bus station is about 15 minutes away from the city centre.

You can easily get there by Metrobus or Metro for just 6 MXN ($0.30).

If you’re not quite sure what the difference is, the Metro is a train that goes underground, whilst the Metrobus is a big bus that has its own lane on the roads and has set stops. Most of the time, this makes the Metrobus a quicker transport option than normal buses.

To get from the city centre to Mexico Terminal TAPO, you can either take Metro line #1 or Metrobus line #4. In both cases, the journey will take around 20 minutes and you should get off at San Lazaro Station. From there, it’s just a 2-minute walk to TAPO Bus Station.

Step 2: Mexico City to Oaxaca

Duration: 7 hours
Cost: 506 MXN ($25.50)
Duration: 7 hours
Cost: 506 MXN ($25.50)

ADO, Mexico’s most popular bus company, is the main operator of buses from Mexico City to Oaxaca. ADO offers a reliable and comfortable bus service with a lot of legroom.

Also available are ADO’s sub-bus companies:

  • AU – the cheapest and most basic bus that doesn’t have a toilet on board
  • ADO – an upgraded version of the basic AU buses
  • ADO Platino – a luxury bus offering comfortable seats, individual screens, snacks and Wi-Fi, but also the most expensive

All of them are first-class buses with AC and reclining seats. The ADO GL and ADO Platino buses offer a few additions like separate toilets for men and women, coffee onboard and charging ports.

The journey time also varies slightly depending on the bus company you choose. ADO GL and ADO Platino offer the fastest travel time, whilst AU is the slowest.

Prices for a bus ticket from Mexico City to Oaxaca start from 506 MXN ($25.50). The bus trip takes around 7 hours.

Bus schedules from Mexico City to Oaxaca

Bus OperatorSchedulesCosts
506 MXN ($25.50)
Check Bus Tickets
750 MXN ($38)
Check Bus Tickets
ADO Platino22:45 – 05:25
23:45 – 06:25
23:59- 06:39
1,092 MXN ($55)
Check Bus Tickets

The bus schedules may vary daily, so it’s best to check the ones for your exact travel dates online. We recommend purchasing your tickets online at least a day before to be assured of a seat on your desired bus trip.

Arrival station

All ADO, ADO GL and ADO Platino buses make their final stop at Central de Autobuses de Oaxaca in the city centre.

If you are travelling with AU, note that it makes two stops: first at Terminal Santa Rosa (5 km northwest of the city centre) and then at Terminal Periferico (2 km south of the city centre) after another 30 minutes. If you’re heading to the tourist area, pick Periferico as your drop-off point.

Step 3: Oaxaca Bus Terminal to the City Centre

Duration: 5 minutes
Cost: 50 MXN ($2.55)
Duration: 5 minutes
Cost: 50 MXN ($2.55)

Depending on where your hotel is located, you may either walk or take a short taxi ride to your final destination in Oaxaca – whether your bus made its last stop at the main bus station in Central Autobuses de Oaxaca or at Terminal Periferico.

The taxi rates, of course, depend on where you’re headed but fares start from 50 MXN ($2.55).

Mexico City to Oaxaca by Flight

Duration: 2hrs 10m
Cost: 770 MXN ($39)
Duration: 2hrs 10m
Cost: 770 MXN ($39)

Travelling from Mexico City to Oaxaca by flight is pretty easy because both airports are located close to the city centre. Also, if you book well in advance, you can get a flight ticket that’s just a few dollars more expensive than the much slower bus.

Step 1: Mexico City Centre to Airport

Duration: 45 minutes
Cost: 30 MXN ($1.50)
Duration: 45 minutes
Cost: 30 MXN ($1.50)

Mexico City Airport is big and busy, so make sure you know which terminal you are departing from. It’s also a good idea to arrive with plenty of time before your departure time.

Flights from Mexico City to Oaxaca depart from Benito Juarez International Airport (MEX). This airport is accessible from the city centre with line #4 on the Metrobus. This shuttle bus service can take you to Mexico City Airport in around 45 minutes. A bus ticket costs 30 MXN ($1.50).

If you prefer, you can use Uber or hire a taxi, which can cut your journey time to around 25 minutes, depending on traffic. Rates start at 200 MXN ($10).

For more details and transport options, check out our guide on Mexico City Airport.

Step 2: Mexico City to Oaxaca

Duration: 1 hour
Cost: 650 MXN ($33)
Duration: 1 hour
Cost: 650 MXN ($33)

A number of flights operate from Mexico City to Oaxaca daily between 07:30 and 21:30. Flight time is around 1 hour.

Several airlines fly between the two cities, such as AeroMexico, Viva Aerobus and Volaris.

In terms of service, AeroMexico is the largest airline. It has great service and departs to Oaxaca around 3-4 times a day, but they come with slightly higher rates. Viva Aerobus and Volaris are more affordable options, but only have one departure a day for the Mexico City to Oaxaca route.

If you’re looking to save money, book your direct flight in advance as fares tend to increase closer to the travel date.

Check Flights on Skyscanner

Step 3: Oaxaca Airport to the City Centre

Duration: 25 minutes
Cost: 90 MXN ($4.60)
Duration: 25 minutes
Cost: 90 MXN ($4.60)

Oaxaca International Airport is about 10 km south of the city centre. There are a few ways you can get to your hotel from Oaxaca’s airport, but we recommend taking either a 50-minute colectivo or a 30-minute taxi.

Colectivos are easily available at the airport and they will take you right to your hotel in Oaxaca. The only disadvantage is that travel time may take longer depending on how many passengers are dropped off at their hotels before you. One-way tickets cost 90 MXN ($4.60) and you can buy them at the airport’s main hall.

If you prefer speed and comfort, you can take a taxi with rates from 350 MXN ($17.50). The actual price will depend on the location of your hotel. You’ll have to prepay your ride at the taxi office in the arrivals hall.

Unfortunately, Uber or similar apps don’t work in Oaxaca. As for public transport, you can get a bus outside the airport. It’s the cheapest way to get to the city centre for only around 10 MXN ($0.50). But you’ll have to walk a bit going to the bus stop and then walk again (or take a taxi) upon arrival at the city centre. We don’t think that’s a great idea when you’re possibly carrying bulky luggage.


Our favourite places to stay in Oaxaca City

Ayook - Treating yourself

Located at the start of the historic centre, Ayook is housed within the remnants of an 18th century house. It’s interior boasts a warm and cozy feel, thanks to its large wooden features and intricate lighting. After just a glimpse at the hotel’s pictures, you’re guaranteed to want to stay here!

You’ll feel like you’re staying in the height of luxury, without paying the price for it. The luxury continues with the à la carte breakfast served to you every morning. The beds are huge, with memory foam pillows, perfect for starfishing all night long.

  • A la carte breakfast
  • Traditional Oaxacan-style interior
  • Great location
  • Private patio per room

Double rooms start from $80 per night

Check Latest Price

La Casa Carlota - Treating yourself

Set within a colonial building, the hotel's interior and design creates a unique blend of the new and the old. The large roof terrace gives you the chance to sit back and reflect over the city of Oaxaca. You’re also only minutes away from some of the biggest attractions in Oaxaca City.

The open central courtyard is the perfect place to enjoy your complimentary breakfast each morning before adventuring through the city. All of the rooms have their own patio, offering you some privacy and a personal place to relax.

  • Open and airy design
  • Large roof terrace
  • Private patio with every room

Double rooms start from $80 per night

Check Latest Price

Azul Cielo Hostel - Mid Range

3 words to best describe Azul Cielo is bohemian, cute and colourful. It’s a social place, but there’s still plenty of areas to hide yourself away and just relax.

Each of the rooms are uniquely decorated, sporting their own style and atmosphere. You’ll also be able to enjoy a private bathroom, as well as a complimentary breakfast included in your stay.

  • Bright and beautiful design
  • Great outdoor spaces
  • Excellent location

Double rooms between $40-$80 per night

Check Latest Price

Casa EL Mundo - Budget Friendly

Situated minutes from Downtown Oaxaca, the cathedral and the flea market, you’ll be able to see all of this from Casa El Mundo’s rooftop terrace. The Mezcal they serve at the rooftop bar is to-die-for, and if you can’t get enough, they even do a Mezcal tour.

The hosts welcome you like family, offering tips on all of the best places to visit in Oaxaca. The whole hotel is clean and bursting with colour wherever you look.

  • Rooftop terrace
  • Mezcal tour
  • Friendly hosts
  • Bright and colourful rooms

Double rooms between $15-$40 per night

Check Latest Price


Was this post helpful?

Click on a star to rate it!

Average rating 5 / 5. Vote count: 2

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?