Charro Beans (or Frijoles Charros in Spanish) are Mexican-style beans cooked in a broth made from bacon, onions, garlic, chiles, tomatoes and other delicious spices. Great as a side dish or as a full meal served with some flour tortillas or cornbread!
If you’re searching for a hearty and filling Mexican side dish, then Charro Beans are made for you!
They’re great in the summer to serve at potlucks and family get-togethers, perfect in the winter in a big bowl with homemade flour tortillas or a piece of jalapeno cornbread, or as an everyday side dish when you’re tired of the same old refried beans.
Plus they’re made with bacon, and we all know that everyone loves bacon! But before we get into the recipe, you may be wondering…
What are charro beans?
Charro beans, or “cowboy beans” in English (or “frijoles charros” in Spanish), are Mexican-style pinto beans cooked in a broth made from bacon, onions, garlic, chipotle peppers, tomatoes and other delicious spices.
The beans are simmered in the flavorful broth until the liquid has reduced and thickened, resulting in a rich and irresistible mouthful of goodness. I like to think of charro beans as the Mexican version of “pork and beans.” Same concept with a touch of chipotle pepper smokiness.
Charro beans and borracho beans (or “drunken beans” in English) are very similar. They’re essentially the same thing, except borracho beans are made with the addition of Mexican beer.
How to make charro beans
- Place the dried pinto beans in a large bowl and cover them completely with water. Let them soak for about 4-8 hours.
- Cook some diced bacon in a large dutch oven over medium-high heat until all the fat is rendered. Add in some onions and jalapenos and cook until translucent.
- Add in garlic, diced tomatoes and chipotle pepper and cook until mixture is bubbling and slightly thick.
- Add in chicken stock, seasonings and soaked pinto beans and bring to boil. Cover, reduce heat to simmer and cook for about 35 minutes, until beans are barely cooked.
- Uncover, turn up the heat to medium-high and cook for another 35-40 minutes, until the liquid has reduced and thickened.
Short on time? Use canned beans!
If you’re looking to save some time and would rather use canned pinto beans instead of dried, skip soaking the beans and follow the directions as written except for the part where you cover, reduce heat to simmer and cook the beans for the first 35 minutes.
Since canned beans are already cooked, skip that step and cook everything uncovered for about 35-40 minutes, until the liquid has reduced and thickened.
I’m a big fan of eating this dish as a meal with a thick slice of cornbread, but if you’re looking to serve it as a side dish, here are some tasty options!
Serving suggestions

Ingredients
- 1 pound dried pinto beans
- 6 ounces bacon, diced
- 1 medium white or yellow onion, diced
- 2 jalapeno peppers, minced
- 2 teaspoons minced garlic (about 4 cloves)
- 2 14-ounce cans diced tomatoes
- 1 chipotle pepper in adobo sauce, diced
- 6 cups chicken stock
- 1 teaspoon dried oregano
- 1/2 teaspoon cumin
- 1 pinch sea salt
- 2 bay leaves
- For serving: cilantro, jalapenos, bacon bits, diced white onions
Instructions
- Place dried pinto beans in a large bowl and cover with about double the amount of water. Beans should be fully submerged. Let soak for 4 to 8 hours. Drain and rinse.
- Heat a large pot or dutch oven over medium-high heat. Add diced bacon and cook for 5-10 minutes, stirring occasionally, until fat is rendered and bacon is starting to crisp up on the edges.
- Add the onions and jalapenos. Cook for about 5 minutes, stirring occasionally, until onions become translucent and begin to soften. Add garlic and cook for 30 seconds, until fragrant.
- Add diced tomatoes and chipotle pepper. Cook for 3-5 minutes, stirring occasionally, until the mixture begins to bubble and thicken.
- Add soaked pinto beans, chicken stock, oregano, cumin, a generous pinch of sea salt, and bay leaves. Turn up the heat to high, stir to combine and bring to a boil. Reduce heat to simmer, cover and cook until beans are barely tender, about 35-40 minutes.
- Uncover the pot, turn the heat up to medium-high and continue cooking for 35-40 minutes, stirring occasionally, until the beans are fully cooked and the liquid has reduced and thickened.
- Taste and season with more salt as necessary. Serve with fresh cilantro, jalapenos, crunchy bacon bits and diced onions!
I made this recipe and it was so delicious! Thank you. My husband and I enjoyed this as a side dish with chimichangas yummy 😋
Excellent recipe–so easy to make and delicious flavor!
I love charro beans but have never tried making them from scratch. Used this recipe for my first attempt and love it. It’s spicier than I expected, but I like it like that!
Just made these tonight and it came out great!! Love the underlying heat. Thanks for a great recipe!
Made these last night and they are amazing. Family freaked!!!
Had to cook for 2 days to get beans soft enough to eat. Could be adding acidic tomatoes as beans were cooking caused the problem.
I love this recipe so much! What modifications would you make to cooking time and amount of broth if you were using one pound of dry black beans? Thank you.
I haven’t specifically tested this recipe with black beans, so I can’t say for certain. I did find a handy little guide online with more information about cooking time for different kinds of beans – here’s that link. I would use the same amount of broth.
Look no further, this is the best Charro bean recipe you will find. I did not change a thing. Making it exactly as instructed, makes a dish with a perfect balance of heat and flavor. So many recipes I’ve tried use the heat of spices to the point that flavor, texture, and balance of your food were overpowered and all you had was a hot mouth. Not so with this recipe, only positive comments and rave reviews from every dinner guest, including my daughter who loves spicy heat and feels my food is NEVER spicy enough. Thanks for sharing a wonderful recipe.
Thank you so much, Vickie! I’m so happy you and your family loved it!!
Made these for the first time and followed the recipe exactly except for a slight variation in the peppers (Serrano and Red Fresno). This was outstanding – I’ve frozen half the batch and (ahem) finished the other half in a couple of days. The flavors and textures are terrific. If you were to turn this into a borracho, would you just replace stock with beer on a 1:1 basis? This will be a staple recipe for me – thanks!
Thanks, Al! So happy you liked it! I actually have a recipe for borracho beans here!
This is the second time I used this recipe my family loved it, o fcourse my husband and brother love beans any way I cook them. I tweak the recipe a little myself by adding a small amount of my creole seasoning i blend myself.
Thank you for the recipe I LOVE to cook anyway💝💝💝💝💞💞💘💘💘🤛🤛
Ooh, a little creole seasoning sounds great in this recipe! Thanks! I’m so happy you and your family liked it 🙂
I love this recipe, I tweaked it just a little. I used pork belly instead of bacon because I had some in the freezer, I added some Sofrito and Chili Con Carne seasoning instead of the cumin (lots of cumin in the chili seasoning). The chili con carne seasoning is from my favorite local spice store, Penzey’s. It’s still on the stove, I can’t wait to try it. We are serving it for Christmas dinner. Thank you for sharing your recipe.
HI,
This is a very good recipe, however I changed a few things. I didn’t use the stock, I added water instead. I don’t care for commercial chicken stock. Don’t like the ingredients at all. Unless I make my own stock, I pass. I didn’t use bacon either, but used what I had on hand, which was Polish Kibalsa sausage. I did used cilantro instead of the jalapenos . It was delicious. Thank you.
I’m so happy you liked it! All of those substitutions sounds delicious, and I love that you used kielbasa!
These soooo good! 👍
Thanks for the recipe!
Thanks, Sandy! I’m so happy you liked it!