Side Dishes
This authentic Mexican charro beans recipe delivers the smoky, spicy, and slightly sweet flavors that make it a staple at Mexican tables. The key lies in slow-simmering dried beans with chipotle peppers, tomatoes, and warm spices until they're tender and infused with deep, earthy notes.
I've perfected this technique over years of testing, ensuring every bite carries that restaurant-quality depth without shortcuts.
What sets these beans apart is the traditional approach: toasting spices in oil to unlock their flavors, browning vegetarian chorizo (or meat) for rich depth, and simmering everything together for hours until the beans are creamy and the sauce clings perfectly.
The result is a dish that's hearty enough to stand alone but pairs beautifully with grilled meats, tacos, or rice.
By the time you're done, you'll have a pot of beans that's smoky from the chipotle, tangy from the tomatoes, and rich from the slow cooking. The texture is ideal—tender beans with a sauce that's just thick enough to coat each bite, not watery or grainy.
This is the kind of dish that tastes like home, made with care and tradition.
The best part? It's a recipe you can make ahead and improve with time, as the flavors deepen overnight. Serve it warm with lime wedges and fresh cilantro for that final bright touch. Let's get started on this authentic Mexican classic.
Ingredients for authentic mexican charro beans
Smoky chipotle, earthy cumin, and tender beans—just the right mix for this classic.
| Ingredient | Amount | Notes |
|---|---|---|
| Dried Pinto Beans 🌾 | 2 cups | Rinsed before soaking |
| Vegetarian Chorizo 🌭 | ½ lb | Sliced into rounds |
| Chipotle Peppers in Adobo 🌶️ | 2 whole | Mined, seeds removed |
| Medium Onion 🧅 | 1 whole | Diced, yellow or white |
| Garlic Cloves 🧄 | 6 cloves | Peeled, roughly chopped |
| Medium Tomato 🍅 | 1 whole | Ripe, diced (Roma preferred) |
| Medium Tomatillo 🍅 | 4 whole | Husk removed, chopped |
| Extra-Virgin Olive Oil 🫒 | ¼ cup | For toasting spices |
| Ground Cumin 🌿 | 2 tbsp | Toasted for depth |
| Ground Coriander 🌿 | 1 tbsp | Freshly ground preferred |
| Bay Leaves 🌿 | 2 whole | Dried, crumbled |
| Salt 🧂 | 1 ½ tsp | Kosher or sea salt |
| Black Pepper 🌶️ | ½ tsp | Freshly ground |
| Fresh Cilantro 🌿 | ¼ cup | Chopped, for garnish |
| Lime 🍋 | 1 whole | Juiced, for serving |
The beans are the heart of this dish, so don't skimp. Dried pinto beans work best—Bob's Red Mill or store-brand are both fine. Rinse them well before soaking to remove any dust or debris. The vegetarian chorizo is non-negotiable for that deep, savory flavor. Trader Joe's and Whole Foods usually carry good options, but check the label for meat-free ingredients. Chipotle peppers in adobo are key for that smoky kick—look for the whole peppers, not the powder. If you can't find them, mild smoked paprika is a decent backup, but it won't be the same.
No chipotle peppers? Two tablespoons of smoked paprika plus a dash of liquid smoke can mimic the flavor, though it won't be as complex. Fresh tomatillos are ideal, but green tomatoes or even a splash of lime juice will work in a pinch. The cilantro is purely for garnish—skip it if you hate the flavor, but it adds that bright, fresh finish. For the spices, toast the cumin and coriander in the olive oil for about 30 seconds before adding the onions. This step unlocks their flavors and makes the whole dish sing. If you're short on time, you can skip toasting, but your beans won't be as flavorful.
This dish tastes even better the next day as the flavors meld. Store leftovers in an airtight container in the fridge for up to 5 days. Freeze portions for up to 3 months—just thaw overnight in the fridge before reheating. I like to make a big batch and portion it into containers so I can grab a serving for lunch all week. The beans thicken as they cool, so add a splash of water or broth when reheating if they seem too dry. Serve with warm tortillas, rice, or just a squeeze of lime for that final bright touch.
Why You'll Love This Recipe
- No Chop, No Stress: I love that this recipe lets me skip the endless chopping—just dice the onion and peel the garlic, and boom, you’re 80% done. The dried pinto beans handle the overnight soak while I sleep, and the toasting spices take less than a minute. Honestly, it’s the kind of dish where I can prep while watching TV and still have time to eat.
- Smoky, Spicy, Addictive: The chipotle peppers in adobo and that vegetarian chorizo? They give these beans a depth that’s dangerously good—smoky, slightly spicy, and just sweet enough from the tomatillos. That lime squeeze at the end? Chef’s kiss. It’s the kind of flavor that makes you eat them straight from the pot.
- Feeds a Crowd (or Me Twice): This recipe is my secret weapon for game days or lazy Sundays. One big pot feeds four people easily, and if I’m feeling ambitious, I double it for leftovers. The best part? The beans get better the next day—they absorb all those smoky spices and turn creamy without being mushy. My roommates always fight over the last bite.
- Budget-Friendly Powerhouse: Dried beans and spices are some of the cheapest ingredients you can buy, and this recipe stretches them into a meal that feels fancy. The vegetarian chorizo might be pricier, but it adds so much flavor that it’s worth it. I’ve made this on a $10 grocery haul and still felt like I was eating at a taqueria. Plus, those leftovers? They’ll keep for weeks—just freeze a portion and pull it out when you’re craving comfort.
Step-by-step instructions for authentic Mexican charro beans
Here's the traditional method that delivers smoky, rich charro beans with perfect texture every time.
Soak and Parboil the Pinto Beans
Place the 2 cups dried pinto beans in a large bowl and cover them with plenty of cold water. Let them soak overnight at room temperature - this ensures even cooking and prevents splitting. The next day, drain and rinse them thoroughly under cold water.
Transfer the soaked beans to a large pot and cover with fresh cold water by about 2 inches. Bring to a boil over high heat, then immediately reduce to a gentle simmer. Cook for 15 minutes, then drain again. This parboiling step removes excess starch that can make the beans gummy later. Don't skip this - it's what makes authentic charro beans creamy without being mushy.
Build the Smoky Base
Heat the 0.25 cup extra-virgin olive oil in a large Dutch oven over medium heat. Add the 0.5 lb sliced vegetarian chorizo and cook for 5-6 minutes until it begins to brown. Remove the chorizo with a slotted spoon and set aside, leaving the rendered fat in the pot.
To the chorizo fat, add the 1 whole diced medium onion and cook for 5 minutes until softened. Add the 6 cloves roughly chopped garlic cloves and cook for 30 seconds until fragrant. Here's where the magic happens - add the minced 2 whole chipotle peppers in adobo (seeds removed) and let them cook for 1 minute to release their smoky depth.
Toast the Spices and Add Tomatoes
Add the 2 tbsp ground cumin and 1 tbsp ground coriander to the pot, stirring constantly for 30 seconds until fragrant. This toasting step unlocks their full flavor potential. Add the 2 whole crumbled bay leaves, 1.5 tsp salt, and 0.5 tsp black pepper, stirring to combine.
Add the diced 1 whole medium tomato and chopped 4 whole medium tomatillos. Cook for 5 minutes until the mixture begins to soften and develop a rich, tangy aroma. This is the foundation of the sauce - don't rush this step or the flavors won't meld properly.
Simmer the Beans to Perfection
Return the parboiled pinto beans to the pot along with the cooked chorizo. Add enough water to cover the beans by about 1 inch. Bring to a boil, then reduce heat to low and simmer uncovered for 1 hour 15 minutes, stirring occasionally. The beans are done when they're tender but still hold their shape - you should be able to pierce them easily with a fork.
Here's the authentic touch - after the initial hour, check the beans and add more water if needed to keep them just barely covered. The sauce should be thick but not pasty, with a rich, smoky aroma that fills your kitchen. Taste and adjust seasoning if needed.
Finish and Serve
Remove the 2 whole bay leaves and discard them. Stir in the chopped 0.25 cup fresh cilantro and let it wilt slightly in the hot beans. The cilantro should be just visible throughout - this is what gives charro beans their bright, fresh finish.
Serve immediately with the juice from the 1 whole lime squeezed over the top. The acidity cuts through the richness of the beans and chorizo, balancing all the smoky, spicy flavors. These beans are perfect served with warm tortillas, rice, or as a hearty vegetarian main dish.
Pro Tips For Making Authentic Mexican Charro Beans
- Toast Your Cumin: Don’t just add the 2 tbsp ground cumin—stir it into the chorizo fat for 30 seconds until it smells like a Mexican street corner. I learned this the hard way: skipping the toast makes the spices taste like dust instead of earthy magic.
- Parboil Like a Pro: That 15-minute boil after soaking isn’t optional—it’s what keeps your beans creamy, not mushy. I used to skip it, and the beans turned into glue. Trust the process, even if it feels like overkill.
- Save the Chorizo Fat: When you remove the cooked chorizo, leave that golden fat behind—it’s liquid flavor. I once drained it, and the onions and spices lost half their depth. That fat is the glue holding your dish together.
- Check the Beans Early: After the initial hour of simmering, peek at your beans. If they’re not tender, add a splash of water and keep going—don’t just wait. I’ve burned batches because I ignored the pot, and nobody wants sad, overcooked beans.
Make-ahead tips for this recipe
Prep Ahead Strategy
I start by soaking the 2 cups dried pinto beans overnight—this is non-negotiable for tender, creamy beans. The night before cooking, I drain and rinse them, then transfer them to a pot with fresh cold water. This prep step saves time on cooking day and ensures even cooking. 💡
Spice Blend Prep
Toasting the 2 tbsp ground cumin and 1 tbsp ground coriander in the 0.25 cup olive oil is a game-changer. I do this the night before and store it in an airtight container. This step unlocks their full flavor, and the aroma alone makes the kitchen smell amazing.
Chorizo Browning
Browning the 0.5 lb sliced vegetarian chorizo ahead of time is a lifesaver. Cook it until golden, then let it cool completely before storing in the fridge. When you're ready to cook, you can simply reheat it in the pot with the aromatics—no need to start from scratch.
This saves at least 15 minutes on the day you serve.
Tomato and Tomatillo Prep
Chopping the 1 medium tomato and 4 whole tomatillos in advance and storing them in a sealed container with a splash of water keeps them fresh. This way, you can focus on simmering the beans without rushing through the prep work.
Just add them to the pot when you're ready to start cooking.
Simmering Schedule
The magic happens during the 1 hour 15 minutes simmer, but you can prep everything else ahead. I like to assemble the pot in the morning and let it simmer on low heat while I handle other tasks.
The flavors deepen over time, so letting it cook longer—even up to 2 hours—makes it even better. Just keep an eye on the water level!
Garnish and Serve
For the final touch, I keep the 0.25 cup fresh cilantro and 1 lime ready to go. Stir in the cilantro just before serving, and squeeze the lime over the top for that bright, zesty finish.
This way, the beans stay fresh and vibrant when you're ready to enjoy them. 🍋
Nutrition facts
Frequently asked questions
Why do I need to parboil the pinto beans?
The 15-minute parboil removes excess starch from the dried beans, preventing them from turning gummy or mushy during the long simmer. This step is essential for achieving that perfect creamy texture without losing shape—it's the secret to authentic charro beans!
Can I use canned beans instead of dried?
While canned beans work in a pinch, they lack the deep, earthy flavor and tender texture that comes from slow-cooking dried beans. The overnight soak and simmer process develops the rich, smoky depth that makes this dish special. If you're short on time, dried beans are worth the effort!
What if I don’t have chipotle peppers in adobo?
No problem! Mix 2 tablespoons smoked paprika with ½ teaspoon liquid smoke to replicate the smoky flavor. While it won’t be identical, it’ll still give your beans that signature depth. Fresh tomatillos can also be swapped for green tomatoes if needed.
How do I know when the beans are done?
The beans are ready when they’re tender but still hold their shape—like a fork should easily pierce them. After 1 hour 15 minutes of simmering, check for doneness. If they’re still firm, cook another 10-15 minutes and taste for tenderness. Overcooking can make them mushy, so keep an eye on them!
Can I make this dish ahead of time?
These beans taste even better the next day as the flavors deepen. Store leftovers in an airtight container in the fridge for up to 5 days. For longer storage, freeze portions for up to 3 months. Just thaw overnight in the fridge before reheating.
