The best restaurants in Mexico City offer a glut of gastronomic experiences at different price points and, above all, with different perspectives of Mexican cooking, expressed through the sheer choice of dishes, techniques, ingredients, and influences from other latitudes.
Mexico City – or CDMX as locals refer to it – is a constant contrast of high and low: on one hand, it is home to traditional restaurants that have written the history of Mexico City around their tables; on the other, it is a destination bursting with new concepts run by young chefs with a casual hospitality style and an eclectic approach to cooking.
A comprehensive itinerary of the best places to eat in Mexico City must include a requisite mole (a classic Mexican sauce) and some elevated version of a taco – but it must also explore the relatively new but already prominent trend for natural or low-intervention wines from local producers alongside small sharing plates (not to mention creative cocktails at the city’s forward-thinking bars).
To experience this incredible culinary scene from top to bottom, a local food writer shares her selection of the best restaurants in Mexico City.
Best for: Casual breakfast or lunch in a traditional, white-tablecloth atmosphere
Location: Calle de la Palma 23, Centro Histórico, Cuauhtémoc, Mexico City, 06000
Price: starting at 100 MXN / 5 USD
With 40 years of history, El Cardenal is an absolute classic in Mexico City’s Centro Historico neighbourhood and one of the first restaurants in the city to emphasise the origin of its ingredients. The service and ambiance have the formality of olden times, with white tablecloths and a pianist playing melodies in the background; however, the restaurant maintains a casual and familiar atmosphere that has made it a local favourite for breakfast and lunch. El Cardenal offers a seasonal menu that includes dishes and traditional ingredients of Mexican cuisine, such as escamoles, chile en nogada (chillies stuffed with a walnut cream), or cod a la vizcaina (salted cod). If you’ve never tried escamoles (ant larvae), El Cardenal is the best place to do so: they are carefully sourced, and are presented sizzling in a clay pot, alongside freshly made tortillas. El Cardenal has three different locations in Mexico City, but we recommend the outpost on Palma Street – it’s housed in a stunning turn-of-the-century mansion.
Best for: Traditional Mexican food, wines and atmosphere
Location: Avenida Cuitláhuac 3102, Claveria, Azcapotzalco, Mexico City, 02080
Price: starting at 120 MXN / 6 USD
Founded in 1957, this family-run stalwart is undoubtedly one of Mexico City’s most revered restaurants, with an elevated menu built on thorough research of ancient recipes and a tireless search for local, organic, and sustainable ingredients. Nicos is located in the slightly further out Azcapotzalco neighbourhood and is well worth the Uber ride to this northwestern area of the city. It stands in contrast to the many hip modern restaurants that abound in other neighbourhoods, and offers a culinary experience that encompasses everything a good restaurant should: great service, dishes prepared tableside, an excellent menu of Mexican wines, fair and local ingredients and, above all, a charming and traditional atmosphere. Order the dried nata (bean) soup, a preparation that dates back to the 19th century, which Nicos preserves to this day.
Best for: Excellent wine with perfectly paired dishes
Location: Jalapa 181, Roma Norte, Cuauhtémoc, Mexico City, 06700
Price: starting at 140 MXN / 7 USD
Vigneron is a tiny restaurant located in the Roma neighbourhood. The best feature about this place is its wine list, which focuses on small producers from France and Spain that work with organic and regenerative agriculture practices. The cuisine is very casual and is designed to pair with the carefully selected wines, which includes crispy whites, funky oranges, light reds, and unique Champagnes. Don’t hesitate to go for the ragu pappardelle or the caviar with French onion dip. A candlelit dinner with one or four bubbling glasses is par for the course at Vigneron.
Best for: an inventive, experiential tasting menu
Location: Chiapas 186, Roma Norte, Cuauhtémoc, Mexico City, 06700
Price: 9-course tasting menu 1,899 MXN / 95 USD
Migrante’s tasting menu will introduce you to Mexican regional ingredients and their intersection with other culinary cultures. The name of the restaurant epitomises what the menu is all about: culinary migration and exchange. The tasting menu comprises nine dishes, transporting you across Mexico, Europe, and Asia. Request a seat at any table near the open kitchen, as it offers a window to the theatrics of the chefs and the aromas that flow from it. Dishes may change according to product availability and seasonality, so keep an open mind, and be prepared to devote at least two hours to the meal – you won’t regret it.
Best for: Elegant, omakase-style set menus
Location: Tonalá 133, Roma Norte, Cuauhtémoc, Mexico City, 06700
Price: Nine-course omakase menu 2,900 MXN / 145 USD
Since its opening, EM has become one of the best restaurants in Mexico City. Chef Lucho Martínez offers two different dining experiences: the longer omakase menu and the option to order à la carte. EM cuisine is highly influenced by Japanese ingredients and flavours, which are combined with a hyper-local and sustainable pantry, sourced from organic farms near the city. The dishes on the menu are elegant in presentation and delicate in flavour, but the experience is accessible and casual, with reservations easily available. Insider tip: Lucho’s crispy fried chicken is not to be missed.
Best for: Oyster and Champagne weekend brunch
Location: Havre 77, Juarez, Cuauhtemoc, Mexico City, 06600
Price: dishes from 190 MXN / 9.5 USD
Havre 77 is one of the best places to enjoy weekend brunch in Mexico City. The highlight is Champagne with oysters of different varieties and sizes from Baja California. The atmosphere is that of a Parisian bistro: small, intimate, and classic. For a casual dining experience, sit at the kitchen bar or, for a more romantic setting, ask for a table near the ornate turn-of-the-century windows. The onion soup and escargots Bourguignonne are some of the best dishes in the city.
Best for: Uniquely personal and casual lunch in a hidden apartment location
Location: Secret until you book
Price: Average per person with no drinks included: 750 MXN / 38 USD
Esquina Común is part of a new wave of pop-up culinary projects that present a new way to eat out in the city. The location of the restaurant is secret and only revealed once you have a reservation, which is done via DM on the Esquina Común Instagram account. The meal takes place inside a small apartment in the Roma neighbourhood, decorated with vintage furniture and other personal items from the home of chef Ana González Serrano. The menu is inspired by Mexican, South American, and Mediterranean flavours, and every dish that comes out of the small kitchen is oh-so-delicious and on point. The experience is convivial and personal, as if you were invited to a dinner party at a friend’s house. Reservations go fast so book well in advance.
Best for: Casual lunch and dinner
Location: Avenida Isaac Newton 104, Polanco, Miguel Hidalgo, Mexico City, 11560
Price: Sishes from 150 MXN / 7.5 USD
If you’re exploring the Polanco area, make sure Malix is is on your hit list. Chef Alonso Madrigal bases the menu here on traditional preparations from the Yucatàn Peninsula, which are combined with maturation and fermentation techniques, and local and organic ingredients. Try the lamb tartar or the duck with parsnips and plums, or if you’re looking for something lighter but equally delicious, the grilled lettuce with black garlic and furikake won’t let you down. The wine and cocktail list are well curated and in sync with Madrigal’s cuisine, with low-intervention or natural wines loaded with herbal and aromatic flavours. The restaurant also has a large table that fits up to eight people, ideal for a family-style lunch or dinner.
Expendio de Maiz
Best for: Casual lunches
Location: Avenida Yucatan 84, Roma Norte, Cuauhtémoc, Mexico City, 06700
Price: Average per person with no drinks included 400 MXN / 20 USD (cash only)
Expendio de Maiz is a unique restaurant and one of the best places to eat in Mexico City. The restaurant is both casual and reverent, with food arriving when it’s ready and served on the street, yet with a heightened respect for traditional, rural ways of cooking. Chef Jesús Tornés works with small farmers and corn growers from his home state of Guerrero and cooks dishes using pre-Hispanic techniques – his self-made nixtamal corn dough, for example, is central to his tortilla preparation. Expendio de Maiz doesn’t have a menu and the dishes change according to the available ingredients. Upon arrival, the chef asks about food restrictions and starts sending beautiful, tasty dishes to the table, full of crisp vegetables, molcajete salsas, regional cheeses, mole, and corn delights. There are no reservations either, so arrive early to get a seat at the small communal tables out front.
Best for: Breakfast and casual lunch
Location: Avenida Álvaro Obregón 106, Roma Norte, Cuauhtémoc, Mexico City, 06700
Price: Dishes from 80 MXN / 4 USD
Tetela’s menu is inspired by flavours from Oaxaca, Michoacan, and Jalisco, and offers best-of-the-best classic dishes from the Mexican repertoire, like chilaquiles with Jalisco-style chirmole, uchepos (corn tamales from Michoacan), and beef cooked in its juices – a homely dish from Guadalajara. The cocktail menu is also a standout: the passion fruit mimosas and watermelon and grapefruit palomas, mixed either with tequila or mezcal, are among Mexico City’s finest.