mexico city food guide (2026)
honest reviews of 15 best food spots in mexico city. tacos, churros, street food, restaurants with prices in pesos and usd conversions.
tldr: out of 15 mexico city food spots, my top 3 are el vilsito (the mechanic-shop-turned-taqueria in narvarte, 20-25 pesos / $1-1.30 usd per taco al pastor), el moro (churros since 1935, centro historico, 85-120 pesos / $4.50-6.30 usd), and the al pastor at taqueria orinoco in roma norte (birria tacos and consomme, 35-50 pesos / $1.80-2.60 usd per taco). full reviews with prices and honest opinions below.
mexico city broke my brain. i went in expecting good tacos and came out convinced this is one of the top three food cities on the planet. the depth here is ridiculous. a 15-peso taco from a street cart at midnight can be as technically perfect as a 500-peso plate at a polanco restaurant. the difference is the taco doesn’t need reservations.
i spent my own money across all these meals. nobody paid me, nobody gave me free food. i ate tacos at 2 am from a mechanic’s shop, churros at a place that’s been open since 1935, and mole that took three days to make. then i rated everything based on taste, value, and whether i’d fly back specifically to eat there again. some of these places are legendary for a reason. others are living off tourist blog mentions from 2019.
if you’re planning a full mexico city trip, this guide covers food across neighborhoods. for specific guides on mexico city’s best street food markets or best restaurants in roma norte, those are separate deep dives.
the awards (my personal picks)
- best overall: el vilsito in narvarte. a mechanic shop by day, a taqueria by night. the al pastor is the best i’ve had anywhere. not a metaphor.
- best budget: tamales lady outside metro hidalgo. 20 pesos ($1 usd) for a tamale that could double as a meal. she’s there every morning from 7 am.
- best for first-timers: mercado de coyoacan. beautiful market, traditional food, easy to navigate. the tostadas de tinga here are a perfect introduction.
- most overrated: los cocuyos in centro. famous for suadero tacos but the quality has dipped as the lines have grown. still decent, just not the transcendent experience people describe online.
- best late night: el vilsito again. opens at 10 pm when the mechanics close up. peak hours are midnight to 2 am.
- best breakfast: chilaquiles at cafe de tacuba in centro historico. a beautiful old-school cantina with tile work and stained glass. the chilaquiles verdes are tangy, crunchy, and drenched in crema.
- best splurge: pujol in polanco. enrique olvera’s tasting menu is genuinely worth the price if you’re into that sort of thing. the mole madre (two moles side by side, one aged 1,500+ days) is a dish you’ll remember forever.
- best dessert: churros with cajeta at el moro. 90 years of perfecting one thing. those people who say “churros are just fried dough” have never been here.
the full list
| # | spot | area | best for | cost per person | my rating |
|---|---|---|---|---|---|
| 1 | el vilsito | narvarte | tacos al pastor | 80-150 pesos ($4.20-7.90 usd) | 9.5/10 |
| 2 | el moro | centro historico | churros, hot chocolate | 85-120 pesos ($4.50-6.30 usd) | 9.5/10 |
| 3 | taqueria orinoco | roma norte | birria tacos, consomme | 120-200 pesos ($6.30-10.50 usd) | 9/10 |
| 4 | mercado de coyoacan fondas | coyoacan | tostadas, comida corrida | 60-100 pesos ($3.15-5.25 usd) | 9/10 |
| 5 | pujol | polanco | mole madre, tasting menu | 3,500-5,000 pesos ($184-263 usd) | 9/10 |
| 6 | el huequito | centro historico | tacos al pastor (sit-down) | 100-180 pesos ($5.25-9.45 usd) | 8.5/10 |
| 7 | tamales lady (metro hidalgo) | centro | tamales, atole | 20-40 pesos ($1-2.10 usd) | 8.5/10 |
| 8 | cafe de tacuba | centro historico | chilaquiles, enchiladas | 150-280 pesos ($7.90-14.70 usd) | 8.5/10 |
| 9 | contramar | roma norte | tuna tostadas, grilled fish | 400-700 pesos ($21-36.80 usd) | 8/10 |
| 10 | el cardenal | centro historico | mole, traditional mexican | 250-450 pesos ($13.15-23.65 usd) | 8/10 |
| 11 | mercado de san juan | centro | exotic meats, fresh seafood | 150-350 pesos ($7.90-18.40 usd) | 8/10 |
| 12 | taqueria el califa de leon | centro | bistec tacos | 60-120 pesos ($3.15-6.30 usd) | 7.5/10 |
| 13 | los cocuyos | centro | suadero, cabeza tacos | 60-100 pesos ($3.15-5.25 usd) | 7.5/10 |
| 14 | churreria el convento | coyoacan | churros, coffee | 70-100 pesos ($3.70-5.25 usd) | 7/10 |
| 15 | rosetta | roma norte | italian-mexican fusion | 350-600 pesos ($18.40-31.50 usd) | 7/10 |
the top tier (my regulars)
1. el vilsito
narvarte / 80-150 pesos for a full meal ($4.20-7.90 usd) / 9.5/10
this is the place that made me understand why people get emotional about tacos. el vilsito is a working mechanic shop during the day. around 10 pm, the hydraulic lifts go quiet, the fluorescent lights stay on, and taco stations appear where cars were being fixed hours earlier. you eat your al pastor standing next to oil-stained floors and it’s the most honest food experience in mexico city.
the trompo (vertical pork spit) is the centerpiece. the cook slices pork directly off the rotating spit with a long knife, catches a piece of grilled pineapple on the blade, and flips it all onto a pair of small corn tortillas in one motion. the pork is marinated in achiote, dried chilies, and pineapple juice, giving it this deep red color and a flavor that’s smoky, sweet, and slightly spicy all at once. the pineapple caramelizes on the spit and adds a hit of acid that cuts through the pork fat.
i ate six tacos in a row and genuinely considered ordering more. the salsa verde here is bright and herbal, the salsa roja has real heat, and the grilled spring onions they hand you on the side are charred perfectly. the whole experience - the setting, the smell of pork and charcoal, the neon lights, the crowd at 1 am - is mexico city compressed into one meal.
what to order: tacos al pastor (minimum 4), a grilled spring onion, both salsas, a bottle of jarritos tamarindo
verdict: the single best taco experience in mexico city. the mechanic shop setting is not a gimmick - it’s the most authentic thing about the place. i’ll fight anyone on this.
2. el moro
centro historico / 85-120 pesos ($4.50-6.30 usd) / 9.5/10
el moro has been making churros since 1935 and the recipe hasn’t changed because it doesn’t need to. the original location on eje central is the one to visit - tiled walls, neon signage, and the sound of hot oil constantly bubbling in the back.
the churros here are not the dense, doughy things you get at theme parks. these are light, crispy on the outside, and almost hollow in the center, which creates this perfect crunch-to-air ratio. the filled versions are the move: cajeta (caramelized goat milk) is the classic, but the chocolate and vanilla custard fillings are equally good. the cajeta one oozes when you bite in, warm and caramelly, somewhere between butterscotch and dulce de leche but tangier.
pair them with the hot chocolate. el moro serves four styles: spanish (thick, dark, almost pudding-like), french (lighter, milkier), mexican (with cinnamon and a hint of chili), and swiss (basically a good hot cocoa). the spanish chocolate with cajeta churros is the combination i dream about.
the place runs 24 hours and there’s something perfect about eating churros at 3 am after a night out in centro. the neon glow, the sugar on your fingers, the too-hot chocolate burning your tongue. it’s a ritual.
what to order: churros rellenos de cajeta, hot chocolate espanol, and one plain churro to appreciate the base recipe
verdict: 90 years of doing one thing perfectly. skip the fancy pastry shops. this is the dessert experience in mexico city.
3. taqueria orinoco
roma norte / 120-200 pesos ($6.30-10.50 usd) / 9/10
orinoco started in monterrey and the mexico city outpost in roma norte carries the same energy. the specialty here is northern mexican food: machaca (dried shredded beef), chicharron prensado (pressed pork crackling), and most importantly, the birria tacos with consomme for dipping.
the birria tacos are the reason to come. beef birria slow-cooked until it shreds with a look, stuffed into a tortilla that’s been dipped in the birria fat and griddled until crispy. each taco comes with a small cup of consomme - the rich, red, slightly spicy broth from the birria. you dip the taco, the crispy tortilla absorbs the broth, and then you bite through layers of crunch, shredded beef, onion, and cilantro into pure liquid warmth. it’s an engineering marvel disguised as a taco.
the flour tortillas here are made fresh and they’re excellent - soft, slightly chewy, with visible butter spots. the machaca with egg is a perfect breakfast order if you’re here in the morning. the beans are refried with perfect creaminess.
what to order: birria tacos (3-4 minimum) with consomme, machaca con huevo, a glass of horchata
verdict: the best sit-down taco experience in roma norte. the birria-consomme dip situation is addictive in a way that should probably be studied.
the solid middle
4. mercado de coyoacan fondas
coyoacan / 60-100 pesos ($3.15-5.25 usd) / 9/10
coyoacan is the neighborhood where frida kahlo lived and it has this artsy, tree-lined, slightly bohemian energy. the mercado here is a beautiful traditional market with rows of fondas (small kitchen stalls) serving comida corrida - the mexican set lunch that includes soup, rice, a main dish, tortillas, and agua fresca for one fixed price. it’s the best value meal in the city.
the tostadas de tinga (shredded chicken in chipotle-tomato sauce on a crispy tortilla) at the stalls near the back entrance are excellent. crunchy, smoky, with enough heat from the chipotle to make you reach for the agua de jamaica. the quesadillas here are made with fresh blue corn masa and filled to order with huitlacoche (corn fungus - sounds terrible, tastes earthy and incredible), squash blossom, or cheese.
what to order: tostadas de tinga, huitlacoche quesadilla, agua de jamaica
verdict: the most pleasant market eating experience in cdmx. come for lunch, stay for the neighborhood.
5. pujol
polanco / 3,500-5,000 pesos ($184-263 usd) / 9/10
i know. it’s expensive. it’s the kind of place where the menu describes ingredients you’ve never heard of and the waitstaff explains every dish like it’s a bedtime story. but pujol earned its reputation.
the mole madre is the signature: two concentric circles of mole on one plate. the outer ring is a fresh mole made that week. the inner circle is a mole madre that has been aging continuously for over 1,500 days - they add to it constantly, so it’s a living, evolving sauce. the aged mole is deeper, more complex, almost chocolatey with bitter and sweet and smoky notes layered so densely you taste something new with every bite. the fresh mole is brighter and fruitier by comparison. eating them side by side is like tasting time itself.
the corn section of the tasting menu is where pujol shows off. baby corn with coffee-infused mayonnaise, chicatana ant salt, and fresh herbs. it sounds pretentious on paper but tastes like someone figured out how to make corn the most exciting vegetable on earth.
what to order: the tasting menu. there’s no other option and there doesn’t need to be.
verdict: worth the price if you want to understand what mexican cuisine can be at its absolute ceiling. not an everyday meal. a once-in-a-trip experience.
6. el huequito
centro historico / 100-180 pesos ($5.25-9.45 usd) / 8.5/10
el huequito claims to be the birthplace of tacos al pastor in mexico city and whether or not that’s historically accurate, their al pastor is legitimately excellent. this is a sit-down taqueria (not a street stall), which means plates, tables, and slightly higher prices. the pork is carved off the trompo with precision, the tortillas are hand-pressed, and the salsa selection is generous.
the al pastor here leans more savory than sweet compared to el vilsito. less pineapple influence, more achiote and chili depth. it’s a different interpretation and some people prefer it. i go back and forth.
what to order: tacos al pastor, gringa (al pastor in a flour tortilla with melted cheese), agua de horchata
verdict: the respectable sit-down al pastor experience. not as thrilling as eating at a mechanic shop at 1 am, but the food is very close.
7. tamales lady (metro hidalgo)
centro / 20-40 pesos ($1-2.10 usd) / 8.5/10
every metro station in mexico city has a tamale vendor in the morning. the one outside metro hidalgo is my favorite. she sets up around 7 am with a large steaming pot and sells tamales in corn husk and banana leaf. the verde (green salsa with chicken) is bright and herbal. the rajas con queso (roasted poblano strips with cheese) is creamy and mild. the mole one is rich and slightly sweet.
the move: order a tamale and stuff it into a bolillo roll to make a guajolota - a tamale sandwich. carbs wrapped in carbs inside more carbs. it sounds insane and it is. but it works as a breakfast item that keeps you full until 2 pm. pair with atole, the thick warm corn drink flavored with cinnamon or chocolate.
what to order: tamale de verde, tamale de rajas con queso, atole de chocolate. make a guajolota if you’re brave.
verdict: the cheapest and most filling breakfast in cdmx. 40 pesos and you’re set until lunch. those people who dismiss tamales as “just corn dough” have never had a good one.
8. cafe de tacuba
centro historico / 150-280 pesos ($7.90-14.70 usd) / 8.5/10
cafe de tacuba has been operating since 1912 and the interior looks like it. hand-painted tiles, oil paintings, arched ceilings, and waiters in white jackets. it’s old mexico city and the food matches the setting.
the chilaquiles verdes are the breakfast order. crispy tortilla chips drenched in tangy green tomatillo salsa, topped with crema, queso fresco, onion, and a fried egg. the tortilla chips start crispy and slowly absorb the salsa, creating this spectrum of textures from crunchy to soft. the enchiladas suizas (in cream sauce) are rich without being heavy. the cafe de olla (coffee brewed with piloncillo sugar and cinnamon) is the drink that ties everything together.
what to order: chilaquiles verdes with a fried egg, enchiladas suizas, cafe de olla
verdict: the most beautiful dining room in centro for the price. the food is traditional and well-executed. come for breakfast before the tourist rush hits around 11 am.
the ones i’d skip (but you might not)
13. los cocuyos
centro / 60-100 pesos ($3.15-5.25 usd) / 7.5/10
los cocuyos is famous for suadero (beef brisket) and cabeza (beef head) tacos. every food blogger mentions it and the line reflects that. the tacos are fine - the suadero has good fat rendering and the cabeza is tender. but the quality has become inconsistent as the fame has grown. some nights the meat sits too long on the plancha and dries out. other nights it’s great. that inconsistency drops it from where it used to be.
verdict: still a solid late-night taco but no longer the transcendent experience everyone claims. el vilsito is better and more consistent.
15. rosetta
roma norte / 350-600 pesos ($18.40-31.50 usd) / 7/10
rosetta gets a lot of press for its italian-mexican fusion and the building is gorgeous - a converted mansion in roma norte with a courtyard and climbing vines. but the food doesn’t match the setting consistently. the pastas are good but not remarkable for the price. the bread basket is excellent (they have a separate bakery, panaderia rosetta, that’s actually more worth visiting). the service can be slow on busy nights.
what to order: the bread basket. seriously. then walk next door to panaderia rosetta for a guava and cheese roll.
verdict: a beautiful restaurant that charges roma norte prices for food that doesn’t always justify them. the bakery next door is the better spend.
mexico city food tips
- the best tacos in cdmx are served between 10 pm and 2 am. the nighttime taco scene is a completely different world from daytime eating. plan accordingly.
- always ask for “dos tortillas” (double tortilla). most street taco vendors serve them this way automatically, but sit-down places sometimes don’t.
- salsa is free and unlimited at taco stands. try both the green and red before committing to one. verde is usually brighter and more herbal. roja is usually smokier and hotter.
- budget 300-500 pesos ($15-26 usd) per day for excellent street food and market eating. you can eat like royalty in this city for very little money.
- uber is the easiest way to get between neighborhoods. cdmx is massive and the metro, while cheap, doesn’t always drop you near the best food areas.
- mercados (markets) serve the best value lunches from 1-4 pm during comida corrida hours. look for fondas with handwritten menus and lots of locals.
- the altitude (2,240 meters / 7,350 feet) can affect your appetite and alcohol tolerance. drink water, eat light on your first day, and don’t blame the food if you feel off.
- tip 10-15% at sit-down restaurants. at street stalls, tipping is not expected but rounding up is appreciated.
if you found this useful, check out these other travel guides: