Stephen and I just completed our Oaxaca travels over the winter holidays. We booked round trip in and out of Mexico City which can be a 30-40% savings. We took a taxi to TAPU (regional bus station) and then the ADO GL bus to Oaxaca (6.5 hours for about $50USD). There’s an overnight bus to Oaxaca from Mexico City — the one to take is the Platino or Uno, which has reclining seats that are like beds.
You’ll just need to check the going rates for the best fares. I have become a Continental Airlines frequent flyer because they fly direct from Houston to Oaxaca and sometimes the fares are good. We’ve paid from $450 to $800, so it’s important to book in advance (way in advance) for best fares. American has a codeshare with Mexicana in which you fly to DFW, then to MexCity, then to Oaxaca. You can fly any carrier into Mexico City and then get to Oaxaca various ways.
There is a bus, Estrella Roja, in the international terminal in Mexico City, that will take you to Puebla ($15USD), one of my favorite cities. It is two hours from M.C. We stay overnight there at Camino Real Puebla (great breakfast buffet) which is a 16th century ex-convent, then continue on to Oaxaca the next day, making the bus trip a little more bearable for me (even though there are toilets on the ADO GL).
I book all our hotel rooms online using www.hotels.com and save 40-50% off the rack rate. For airplane fares, I belong to www.airfarewatchdog.com and use www.hotwire.com. Most of the discount airfare websites are not substantially different in pricing, but you can get tricked into booking a low cost fare only to discover that they haven’t added on airport taxes and booking fees until check-out. On my next trip to Oaxaca coming up in February for the documentary filmmaking workshop we are offering, I booked round trip from RDU to Mexico City for $388USD including taxes and fees. I then went onto the Mexicana website and booked an internal round trip from MexCity to Oaxaca for an additional $200, making the total fare come in under $600.