Authentic Mexican Charro Beans Recipe: Smoky Bacon and Cumin-Infused One-Pot Magic

Side Dishes

Authentic Mexican Charro Beans Recipe: Smoky Bacon and Cumin-Infused One-Pot Magic

This authentic Mexican charro beans recipe delivers the smoky, cumin-rich flavor that makes it a staple at Mexican tables—perfect for weeknight dinners or festive gatherings.

The secret lies in slow-simmered beans infused with earthy spices, tender bacon (or mushrooms for a vegetarian twist), and fresh epazote for that signature herby brightness. I’ve perfected this one-pot method over years of testing, ensuring every bite captures the soul of Mexican home cooking.

The beauty of charro beans is their versatility—they’re hearty enough to stand alone but elegant enough to complement grilled meats, tacos, or rice. What sets this recipe apart is the slow simmering time, which develops deep, smoky flavors without overpowering the beans’ natural sweetness.

No fancy techniques required—just patience and a few key ingredients to transform simple pinto beans into something extraordinary.

By the end, you’ll have a pot of rich, smoky beans with tender bacon (or mushrooms) and a fragrant epazote finish. The texture is just right—creamy yet firm—and the aroma alone will have everyone at the table asking for seconds.

This is the kind of dish that feels like a warm embrace, especially when paired with warm tortillas or fluffy rice.

Whether you’re serving a family dinner or prepping for a fiesta, this recipe delivers authentic flavor in one pot. The best part? Leftovers taste even better the next day, making it a meal-prep favorite. Let’s get cooking—your taste buds will thank you.

👨‍🍳
Difficulty
Medium
🥩
Diet
Meat
🔥
Calories
Med Cal

Ingredients for authentic mexican charro beans

Pinto beans, earthy spices, and slow-simmered magic—this vegetarian charro beans recipe delivers authentic Mexican flavor in one pot.

Ingredient Amount Notes
Dried Pinto Beans 🌽 1 ½ cups Rinsed before soaking
Vegetable Broth 💧 4 cups Low-sodium preferred
White Onion 🧅 1 whole Diced, yellow or white
Garlic Cloves 🧄 4 cloves Minced, fresh preferred
Ground Cumin 🌿 2 tsp Toasted for deeper flavor
Smoked Paprika 🌶️ 1 tbsp For authentic smokiness
Dried Oregano 🍃 1 tsp Mexican oregano if available
Bay Leaves 🌿 2 whole Fresh if possible
Fresh Epazote 🌿 ¼ cup Chopped, or substitute cilantro
White Wine Vinegar 🍋 1 tbsp For brightness
Olive Oil 🫒 2 tbsp Extra-virgin for richness
Salt 🧂 1 ½ tsp Diamond Crystal preferred
Black Pepper 🌶️ ½ tsp Freshly ground
Mushrooms 🍄 6 oz Crimini or baby bella, sliced
Fresh Lime 🍋 1 whole Juiced, for finishing

The beans are the foundation, so don’t skimp on quality. Dried pinto beans from Mexican markets or bulk bins have the best texture, but any dried variety works. If you’re short on time, pre-soaked or canned beans (drained and rinsed) save the day—just add 1/2 cup extra liquid. For the mushrooms, crimini or baby bella add that meaty texture vegetarians crave. I grab mine at Whole Foods when they’re on sale, but any grocery store carries them. The epazote? If you can’t find it, cilantro or parsley works in a pinch—just use less since it’s milder. Toast your cumin seeds in a dry pan for 30 seconds before grinding—that smoky aroma is worth the extra minute.

No smoked paprika? Regular paprika plus a pinch of liquid smoke gets you close. Fresh epazote unavailable? Cilantro or Mexican tarragon (if you’re feeling fancy) brings a similar herbal note. The white wine vinegar adds brightness—apple cider vinegar works too, but the flavor shifts slightly. For the mushrooms, shiitake or oyster mushrooms add even more depth. If you’re serving this with tortillas, corn tortillas are traditional, but flour works fine. The broth? Homemade vegetable broth elevates everything, but low-sodium store-bought is a solid backup. Just remember: the longer you simmer, the deeper the flavors—two hours minimum for that restaurant-quality texture.

These beans taste even better the next day—plan ahead. Store in an airtight container in the fridge for 4-5 days or freeze for 3 months. I like to portion mine into containers with a sprinkle of lime juice on top—keeps them fresh longer. For serving, a drizzle of extra-virgin olive oil and extra epazote (if you’ve got it) takes it to the next level. The mushrooms stay tender, so reheat gently on the stove with a splash of broth. Leftovers make killer tacos or quesadillas—just what you need for lazy weeknights.

❤️

Why You'll Love This Recipe

  • No-Soak Necessary: I’ll admit, I used to dread the overnight soak—until I discovered these beans cook beautifully right from dried. Just a quick rinse and simmer, and the broth pulls all that earthy pinto richness right out. My lazy Sundays thank me.
  • Cumin Magic: That first whiff of toasted cumin hitting the pan? Instantly transports me to a taqueria. The deep, warm aroma lingers, then mellows into this perfect balance of smoky and savory. Honestly, I’ve tried store-bought—nothing beats homemade.
  • Weeknight Workhorse: Toss these into a burrito bowl for dinner, then reheat the leftovers for lunch. They’re the quiet hero that pairs with everything: grilled chicken, crispy tortillas, even just with cheese and sour cream. My go-to for when I’m too tired to plan.
  • Pantry Staple Power: Five ingredients, zero specialty items. The onion and garlic add depth for pennies, and dried beans last forever. I’ve made this through three grocery budgets—it’s the kind of recipe that stretches dollars without stretching patience. (Yes, even on a Tuesday night.)

Step-by-step instructions for authentic Mexican charro beans

Here's how to transform simple ingredients into restaurant-quality charro beans with deep smoky flavor and tender texture.

1

Soak and Prepare the Beans

Rinse the 1.5 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 3 inches above the beans. Let them soak for 8-12 hours at room temperature. I like to do this overnight in the refrigerator for even better texture.

The key here is proper hydration. After soaking, drain the beans and give them a quick rinse. You'll notice they've swollen significantly and become more pliable. This preparation step is crucial for preventing the beans from splitting during cooking and ensures they absorb all those wonderful smoky flavors we're building.

2

Build the Flavor Base

In a large, heavy-bottomed pot, heat the 2 tablespoons olive oil over medium heat. Add the diced white onion and cook for 5-6 minutes until softened and translucent. Add the minced garlic cloves and cook for another 30 seconds until fragrant - you should smell that sweet garlic aroma filling your kitchen.

Now stir in the 2 teaspoons ground cumin, 1 tablespoon smoked paprika, 1 teaspoon dried oregano, 1.5 teaspoons salt, and 0.5 teaspoon black pepper. Toast these spices for 30 seconds until you can smell their aromatic oils releasing. This quick toasting step develops their flavors and prevents them from tasting raw in the final dish.

3

Simmer the Beans with Aromatics

Add the drained pinto beans to the pot along with the 4 cups vegetable broth and 2 whole bay leaves. Bring everything to a gentle boil, then immediately reduce heat to low. Cover the pot and let it simmer for 1.5 hours, stirring occasionally to prevent sticking.

After the initial hour, add the 6 ounces sliced mushrooms and 0.25 cup chopped fresh epazote. The mushrooms will absorb the bean broth beautifully, adding earthy depth. The epazote, with its distinctive herbal note, is what makes these beans truly authentic - don't skip it if you can find it. If you can't, a tablespoon of chopped cilantro works as a substitute.

4

Finish with Acid and Brightness

Once the beans are tender (they should be soft but not mushy), stir in the 1 tablespoon white wine vinegar and juice of 1 whole fresh lime. This acidity brightens all the rich flavors and cuts through any heaviness. Taste and adjust seasoning - you might want to add a bit more salt or lime juice to your preference.

Let the beans simmer uncovered for another 10-15 minutes to thicken slightly. The sauce should coat the back of a spoon but still be loose enough to spoon easily. If it's too thick, add a splash of water or broth. The final texture should be creamy yet still have some body to it, not watery.

5

Rest and Serve

Remove the pot from heat and let the beans rest for 10 minutes before serving. This resting period allows all the flavors to meld together perfectly. Before serving, taste again and adjust seasoning if needed - sometimes the flavors develop even more during this resting time.

Serve the charro beans warm, either as a standalone dish or alongside your favorite Mexican proteins like carnitas or grilled chicken. The smoky, cumin-infused flavors will complement any main course beautifully. These beans keep well in the refrigerator for up to 5 days, making them perfect for meal prep - just reheat gently with a splash of water or broth to restore their creamy texture.

👨‍🍳

Pro Tips For Making Authentic Mexican Charro Beans

  • SOAK BEANS OVERNIGHT: I learned this the hard way—rushing the soak with cold water leaves them tough. Use 4 cups warm water per cup of dried pintos, soak 8+ hours (or quick-soak: 2 hours in boiling water, then 1 hour off heat). The longer they soak, the creamier the texture, and you’ll save time skimming skins later.
  • CARMELIZE ONIONS LOW: Skip the high heat that burns them into bitter sludge. Cook onions over medium-low with a pinch of salt, stirring often—about 15 minutes until deep amber. This sweetens them properly and gives your beans that rich, jammy base.
  • TOAST CUMIN WITH GARLIC: After blooming the cumin in dry pan, crush the garlic cloves first—this releases more flavor. Cook them together 30 seconds until garlic just turns golden, not brown. It’s the thing that matters most for that deep, earthy aroma in charro beans.
  • SKIM SKINS MID-COOK: After simmering 45 minutes, skim off any foam and floating skins with a slotted spoon. I know, it’s annoying, but it guarantees a silky texture. If you skip this, you’ll end up with a gummy batch—trust me, I’ve made it worse.

Common mistakes when making this dish

Skipping the Soak

I’ve seen many beginners skip soaking their beans to save time, but this is a big mistake. Unsoaked beans take 4-6 hours longer to cook and often split open, releasing starches that make the final dish mushy.

If you’re in a hurry, use pre-soaked beans from the canned aisle (drained and rinsed) or opt for quick-soak method: Boil beans for 2 minutes, then let them sit off heat for 1 hour before cooking. 💡

Overcrowding the Pot

Charro beans need room to breathe during simmering. If you pack too many beans into your pot, they’ll steam instead of simmer, leading to a watery, flavorless result.

Use a pot that’s at least 3-4 inches taller than the bean level—I like my 6-quart Dutch oven—and never fill it more than 2/3 full. For every 1.5 cups dried beans, plan for 4-5 cups liquid.

Ignoring the Smoked Paprika

The smoky depth of charro beans comes from smoked paprika, not just regular paprika. Substituting with regular paprika will leave your beans tasting flat. If you can’t find smoked paprika, combine 1 tbsp regular paprika with ½ tsp liquid smoke (like Annie’s brand) for a similar effect.

Toast the paprika in the oil for 30 seconds to intensify its flavor even more.

Rushing the Simmer

Low and slow is key—don’t rush the 2-hour simmer. Skipping this step results in beans that are still firm or taste bland. The long cook time allows the flavors to meld and the beans to develop that creamy, tender texture.

If you’re short on time, use pre-cooked canned beans (drained and rinsed) and simmer for at least 1 hour instead. Just add extra liquid to compensate for their higher starch content.

Forgetting the Epazote

Epazote is the secret ingredient that gives charro beans their authentic flavor. If you skip it, your beans will lack that bright, herbal note. If you can’t find fresh epazote, use 1 tbsp chopped cilantro as a substitute, but reduce the amount by half since cilantro is milder.

For an even deeper flavor, add ½ tsp dried epazote (if available) along with the other spices during the toasting step.

Over-Salting at the End

It’s easy to over-salt charro beans because the flavors develop during simmering. Taste as you go—add salt in ¼ tsp increments—and remember that the beans will absorb more salt as they cook.

If your beans taste bland at the end, a splash of lime juice or extra white wine vinegar can brighten them up without adding more salt. Always taste before serving! ✨

Nutrition facts

Servings 4
Amount Per Serving
Calories 320kcal
% Daily Value *
Total Fat 12g15%
Saturated Fat 2g10%
Cholesterol 0mg0%
Sodium 680mg29%
Total Carbohydrate 48g17%
Dietary Fiber 12g43%
Sugars 4g
Protein 18g36%
* Percent Daily Values are based on a 2,000 calorie diet. Your daily values may be higher or lower depending on your calorie needs.

Frequently asked questions

1

Can I make charro beans without epazote?

Yes! While epazote gives authentic flavor, you can substitute with 1 tablespoon chopped cilantro or ½ teaspoon dried Mexican oregano for a similar herbal note. For extra depth, add ½ teaspoon dried thyme during the spice toasting step. The dish will still taste delicious without it!

2

How do I make these beans vegetarian?

This recipe already includes a vegetarian-friendly version using mushrooms instead of bacon. For extra richness, try adding ½ cup diced smoked tofu or 1 tablespoon liquid smoke to mimic the smoky bacon flavor. The mushrooms add a meaty texture that works perfectly with the beans.

3

Can I use canned beans instead of dried?

Use 3 cups drained and rinsed canned pinto beans (about 2 cans) and reduce the broth to 3 cups. Since canned beans are pre-cooked, simmer for only 45-60 minutes instead of 2 hours. The texture will be slightly softer but still delicious. Just add a splash of water if the mixture gets too thick.

4

What's the best way to store leftovers?

Store in an airtight container in the fridge for 4-5 days or freeze for 3 months. For reheating, add 2-3 tablespoons water or broth per cup of beans and simmer on low heat until warmed through. The flavors actually improve overnight, making them perfect for meal prep!

5

How do I adjust the spice level?

For milder beans, reduce the smoked paprika to 1 teaspoon and omit any chili powder. For extra heat, add ½ teaspoon cayenne pepper with the initial spices or serve with hot sauce on the side. Always taste as you go—you can adjust heat at any point during cooking.

★★★★★4.5(3 reviews)
Categories Side Dishes