Side Dishes
This traditional Mexican beans recipe captures the soul of Mexican home cooking—smoky chipotle, earthy cumin, and tender beans simmered to perfection. 💫 I first learned this method from a family in Oaxaca who swore by soaking beans overnight and slow-cooking them with bacon fat, which adds unmatched depth.
The key lies in balancing spices and letting flavors develop gradually.
What makes these beans truly authentic is the combination of chipotle in adobo for smokiness, ground cumin for warmth, and a touch of epazote—a herb that transforms ordinary beans into something extraordinary.
Unlike quick versions, this recipe requires patience: soaking the beans overnight ensures they cook evenly, while simmering for hours builds layers of flavor that store-bought can't match.
By the time you serve these, you'll have a pot of rich, aromatic beans with tender textures and complex flavors—perfect for scooping alongside rice, tacos, or as a standalone dish.
The smoky aroma alone will transport you to a Mexican kitchen, and the versatility means they work for any meal from breakfast to dinner.
For those who love tradition, this is the recipe to master—no shortcuts, just the real deal. Whether you're feeding a family or meal prepping for the week, these beans deliver restaurant-quality results at home. Let's get started with the full method!
Ingredients for traditional mexican beans
Six core ingredients transform into smoky, aromatic beans that taste like home.
| Ingredient | Amount | Notes |
|---|---|---|
| Dried Pinto Beans 🌱 | 2 cups | Rinsed thoroughly before soaking |
| Chipotle Peppers in Adobo 🌶️ | 2 whole | Adjusted for smoky depth |
| Ground Cumin 🌿 | 1 tbsp | Toasted for enhanced aroma |
| Fresh Epazote 🌿 | ¼ cup | Chopped finely for authentic flavor |
| White Onion 🧅 | 1 whole | Diced medium-fine |
| Garlic Cloves 🧄 | 4 cloves | Peeled and lightly crushed |
| Tomato Paste 🍅 | ¼ cup | Squeeze tube preferred |
| Vegetable Broth 💧 | 4 cups | Low-sodium preferred |
| Extra-Virgin Olive Oil 🫒 | ½ cup | For rich, fruity depth |
| Lime Juice 🍋 | 2 tbsp | Freshly squeezed |
| Sea Salt 🧂 | 1 ½ tsp | Diamond Crystal preferred |
| Black Pepper 🌶️ | ½ tsp | Freshly ground |
| Avocado Oil 🫒 | 1 tbsp | For final drizzle |
The beans are the foundation, so pinto beans are non-negotiable here—their earthy flavor holds up perfectly to the smoky chipotle. Trader Joe's or Mexican markets often carry the best quality, but any dried pinto beans will work. The chipotle in adobo is where the magic happens—look for brands with thick, rich adobo sauce (like Goya or La Costeña) to ensure maximum smokiness. Fresh epazote can be tricky to find, but Mexican grocery stores or Latin markets usually have it—freeze any extra in oil for later use. If you can't find epazote, oregano at half the amount works in a pinch, though it won't be authentic.
No fresh epazote? Dried epazote leaves (if available) can be used at a quarter of the amount, but skip it entirely rather than using substitutes like cilantro or parsley—they won't give the same earthy kick. The tomato paste is a game-changer for depth, so don't skip it. Trader Joe's squeeze tubes are perfect for this—no waste, and they keep for months. For the vegetable broth, low-sodium is key—you can always add more salt at the end. The lime juice should be freshly squeezed; bottled won't cut it here. And if you're short on time, soaking the beans in hot water for 1 hour instead of overnight still works, though texture won't be quite as tender.
These beans reheat beautifully—add a splash of water or broth if they've thickened too much. They keep in the fridge for 5-6 days and freeze for up to 3 months. I always make a double batch: one for immediate use and one to freeze for lazy weeknights. The avocado oil drizzle at the end isn't just for flavor—it keeps the beans moist and adds a silky texture. Store leftovers in airtight containers with a lid slightly ajar to prevent sogginess. Trust me, the first bite after reheating is worth the wait.
Why You'll Love This Recipe
- No-Soaking Needed: I’ll admit—I used to dread the overnight soak, but these beans soften beautifully with just a quick rinse and a long simmer. That chipotle in adobo? It melts into the pot while they cook, so no extra prep.
- Smoky Depth Magic: The moment I blend that adobo sauce with the beans, the kitchen smells like a taquería. That earthy cumin and fresh epazote? They turn a simple pot of beans into something that tastes like a hug.
- Game for Any Meal: Slap these on tortillas for breakfast tacos, pile them over rice for dinner, or serve them cold in a bowl with lime—no rules. My college kids eat them straight from the pot with a spoon. (Don’t judge.)
- Budget Superstar: A pound of dried pinto beans feeds my family for days, and the spices cost pennies. Plus, the leftovers? They only get better the next day, reheating in minutes for lunch or dinner. My wallet and I both win.
Step-by-step instructions for traditional Mexican beans
Here's how to make authentic, smoky beans that taste like they came straight from a Mexican kitchen.
🍳 Step 1: Soak and Prepare the Beans
Rinse the 2 cups dried pinto beans thoroughly under cold water to remove any debris. Place them in a large bowl and cover with plenty of cold water—at least 8 cups—to ensure they're fully submerged. Let them soak overnight (or at least 8 hours) in the refrigerator. This long soak guarantees they'll cook evenly and break down properly for that classic Mexican texture.
Here's the thing—don't skip this step. Soaking reduces cooking time and prevents those tough, undercooked beans. After soaking, drain and rinse the beans again before cooking. I like to give them a quick shake in the colander to remove any skin that might have loosened during soaking. This ensures your final beans are smooth and creamy.
🔥 Step 2: Build the Smoky Base
In a large Dutch oven, heat the 1 tablespoon avocado oil over medium heat. Add the 1 whole white onion (diced medium-fine) and cook for 5 minutes until soft and translucent. Add the 4 cloves garlic cloves (lightly crushed) and cook for another 1 minute until fragrant. You'll notice the kitchen fills with that irresistible garlic aroma—this is where the magic starts.
Now for the smoky kick: Add the 2 whole chipotle peppers in adobo, sliced lengthwise. Cook for 2 minutes until they soften slightly. Stir in the 1 tablespoon toasted ground cumin and 0.25 cup tomato paste, cooking for 3 minutes until the paste darkens and becomes fragrant. This aromatic base is the foundation of your beans' deep, complex flavor.
🍳 Step 3: Simmer the Beans Low and Slow
Add the drained beans, 4 cups vegetable broth, and 1.5 teaspoons sea salt to the pot. Bring to a boil, then reduce heat to low and cover partially. Let the beans simmer for 1.5 to 2 hours, stirring occasionally, until they're tender but not mushy. You'll know they're ready when they easily mash between your fingers with a light squeeze—this is the perfect texture for traditional Mexican beans.
About 30 minutes into cooking, add the 0.25 cup finely chopped fresh epazote and 0.5 teaspoon black pepper. The epazote will release its distinctive herbal aroma, which is essential for authentic flavor. If the beans start to look dry, add a splash of water or broth to keep them moist. The key here is patience—rushing will result in tough beans.
🥘 Step 4: Finish with Bright Acid and Rich Oil
Once the beans are tender, stir in the 0.5 cup extra-virgin olive oil and 2 tablespoons lime juice. The oil adds richness while the lime brightens the flavors, cutting through the smokiness. Taste and adjust seasoning—you might need a bit more salt or lime depending on your broth. Here's where it gets fun: the beans should have a perfect balance of smoky, earthy, and bright flavors.
Let the beans sit off heat for 5 minutes before serving. This resting period allows the flavors to meld completely. Drizzle with an extra spoonful of avocado oil just before serving if you want that restaurant-quality finish. These beans pair perfectly with rice, tortillas, or as a standalone dish with warm corn bread.
Pro Tips For Making Traditional Mexican Beans
- SOAK BEANS 8 HOURS (NOT 2): I learned this the hard way—rushing soak time leaves beans tough and gummy. Use a big bowl, cover with water by 2 inches, and add 1 tablespoon baking soda (yes, it works). Let them sit overnight or at least 8 hours, then drain and rinse before cooking. Your beans will soften faster and stay creamy.
- CHAR THE ONION LOW: Don’t rush this step—slow-cook the onion until it’s dark brown and almost jammy, about 20 minutes. High heat burns it; low heat caramelizes it properly. This is the flavor base, so take your time or taste bland beans later.
- TOAST CUMIN IN DRY PAN: Heat 1 teaspoon ground cumin in a dry skillet for 30 seconds until it smells nutty and aromatic. Let it cool slightly before adding to the beans—this deepens the earthy flavor. Skipping this step means missing out on that smoky depth.
- ADD EPAZOTE LATE: Toss in fresh epazote only in the last 5 minutes of cooking—it wilts fast and loses flavor if overcooked. If you can’t find it, dried works too, but use half the amount (¼ teaspoon) and steep it in hot broth for 10 minutes first.
Common mistakes when making great traditional mexican beans
Skipping the Soak
I’ve made this mistake more times than I’d admit—skipping the overnight soak to save time. But here’s the deal: beans need that long soak to break down properly, or you’ll end up with tough, chalky beans that refuse to soften.
Even a 4-hour quick soak in hot water won’t cut it. If you’re in a rush, at least soak them for 8 hours in cold water. Trust me, the extra time pays off with creamy, tender beans every time. 💫
Overcrowding the Pot
Using a pot that’s too small is a recipe for disaster—literally. When beans are packed too tightly, they won’t cook evenly, and the liquid can’t circulate properly. Always use a pot that’s at least 2-3 times larger than your bean volume.
I like to use a 6-quart Dutch oven for this recipe because it gives the beans room to breathe and simmer gently. If your pot is too small, the beans will steam instead of simmer, leading to mushy textures and uneven cooking.
Ignoring the Epazote
This is a big one—skipping epazote is like making chili without cumin. That distinct herbal aroma is non-negotiable for authentic flavor. If you can’t find fresh epazote, don’t substitute with cilantro or parsley—they won’t give the same earthy, slightly bitter kick.
Some Mexican markets sell dried epazote leaves, which you can use at a quarter of the fresh amount. But if you’re missing it entirely, the beans will still be good, just not traditional. 🌿
Rushing the Simmer
Low and slow is the golden rule here. I’ve seen people crank the heat to high to speed things up, but that’s a fast track to tough, undercooked beans. Keep the heat at a gentle simmer—you should see just a few bubbles breaking the surface.
If you’re not sure, use a meat thermometer to check the internal temp: beans are done at 205°F. Patience is key—rushing this step will leave you with beans that are more like mushy peas than the creamy, flavorful dish you’re after.
Over-Salting the Broth
This is a common pitfall, especially if you’re using a broth that’s already salted. Taste your broth before adding the beans—you can always add more salt later, but you can’t take it out.
I like to use low-sodium vegetable broth and then adjust with Diamond Crystal sea salt at the end. A good rule of thumb: add half the salt upfront, then taste and adjust after the beans have simmered for an hour.
This way, you avoid ending up with a pot of beans that’s more like a saltwater solution. 🧂
Skipping the Resting Time
Letting the beans rest for 5-10 minutes after cooking might seem like a small detail, but it’s crucial. This step allows the flavors to meld and the beans to absorb any remaining liquid, resulting in a creamier texture.
If you dive in right away, you’ll end up with a watery, uneven dish. I also like to give the beans a quick stir before serving to redistribute any settled flavors at the bottom of the pot. It’s a tiny habit that makes a big difference in the final result.
Nutrition facts
Frequently asked questions
Can I use canned beans instead of dried for this recipe?
While canned beans will work in a pinch, they won't give you that same authentic texture and depth of flavor. For the best results, stick with dried pinto beans—soaking them overnight ensures they break down properly and develop that creamy, traditional consistency. If you're short on time, use canned beans but add an extra 1/2 cup broth and simmer for 30 minutes to let flavors meld.
What if I can't find fresh epazote?
Epazote is the secret ingredient that makes these beans truly authentic, but don't panic if you can't find it. Some Mexican markets sell dried epazote leaves, which you can use at a quarter of the fresh amount. If you're completely out of options, skip it entirely—the beans will still be delicious, just missing that signature herbal note. Never substitute with cilantro or parsley, as they won't provide the same earthy flavor.
How do I make these beans vegetarian-friendly?
This recipe is already vegetarian, but you can enhance the flavor by using vegetable broth instead of chicken broth and cooking with avocado oil or olive oil instead of lard. For extra richness, add a splash of vegetable stock or a pinch of nutritional yeast at the end. The chipotle and cumin provide plenty of depth without any animal products, making these beans perfect for plant-based meals.
Can I make this recipe in a slow cooker?
The slow cooker is perfect for this dish—it mimics the gentle simmering needed for tender beans. Start by soaking the beans overnight, then combine everything (except the epazote and lime) in the slow cooker. Cook on low for 6-8 hours or high for 3-4 hours>, stirring occasionally. Add the epazote and lime in the last 30 minutes of cooking. The slow cooker method actually enhances the flavors, creating a deeper, more aromatic result.
How long will these beans keep in the fridge?
These beans stay fresh in the fridge for 5-6 days when stored in an airtight container. For best results, let them cool completely before refrigerating and press plastic wrap directly on the surface to prevent a skin from forming. If you're prepping ahead, they freeze beautifully for up to 3 months>. Just thaw overnight in the fridge and reheat gently with a splash of water or broth to restore their creamy texture.