Slightly spicy and smokey, Mexican charro beans are a filling comfort food. Eaten as a main course or a side dish, these beans are almost always featured at a carne asada cookout.
Known as Mexican cowboy beans, or frijoles charros, charro beans remind me of baked beans or “Beenie Weenies” but tend to be a bit spicy with a smokey flavor instead of sweetened like my barbeque baked beans.
Charro beans are pinto beans slowly simmered with aromatics like garlic and onion, while numerous meats and vegetables are sauteed together with seasonings. Once both are ready, they are combined into a wonderfully flavored comfort meal.

While many recipes start with a similar base, the options for fillings and ingredients expand from there. Because recipes can vary a lot between households and regions, there’s no real one authentic charro beans recipe. However, a traditional recipe will include pinto beans with onions and garlic, usually jalapeno or serrano, tomatoes, and pork like bacon, ham, and/or chorizo.
Jump to:
🥘 Ingredients for Charro Beans
If you do much Mexican cooking, most of these ingredients will be pantry staples. Most of the ingredients are easily found in any grocery store, other than 1-2 optional items.

Beans – A popular bean in Mexican cooking, dry pinto beans are the typical choice in frijoles charros. If time is an issue, you can also use canned beans, but slow simmering from dried gives the best flavor.
Meats – Most recipes use a mixture of mostly pork products, with bacon almost always included. Other common additions typically include ham, Mexican pork chorizo, beef hot dogs, and chicharrones. In this recipe I use bacon, ham, and chorizo, but I also love this with the hot dogs too.
Bean Aromatics – For cooking the beans, I add white onion, garlic, salt, and 1-2 sprigs of fresh epazote. This is probably the most difficult item to find outside of a Latin or international market. If you can’t get epazote, just replace it with 1-2 bay leaves instead.
Vegetables – After cooking the meats, I use a combination of white onion, garlic, jalapeño (or serrano if you want spicier), a chipotle in adobo with a bit of the adobo (optional), and Roma tomatoes. Sometimes I like to swap the fresh tomatoes for a can of fire-roasted tomatoes as well.
Seasonings – Seasoning blends here can vary a lot, but I use a mix of black pepper, smoked paprika, Mexican oregano, ground cumin, and ground ancho chile. If you can’t find ancho chile powder, you can omit that or use some regular chile powder. Mexican oregano has a different flavor from regular dried oregano, but if you can’t find it the best substitute would be marjoram or just use regular oregano.
Herbs – Near the end, and for a garnish, I add in fresh cilantro. If you absolutely hate the flavor though, you can use parsley instead or just omit it.
🥣 What Are Charros?
Frijoles charros is a rich, hearty, and filling bean dish named after Mexican cowboys or horsemen. Like the cowboy beans or chuckwagon beans of the American West, this dish was often eaten by cowboys or ranch hands as a protein-rich meal as fuel for the day.
Pinto beans were an inexpensive item that traveled easily when stored dry. Mixed with meat, it made a filling meal for cowboys on the move. While modern cowboy beans in areas like Texas tend to be sweet and tangy, charro beans lean toward spicy and unsweetened. Another similar dish is barracho beans, which include beer.
While they can be made as a filling meal, they are also almost always served as a side dish at a carne asada in Northern Mexico. When eaten as a main course, they are usually served with corn or flour tortillas to sop up the liquid between bites.

🔪 How to Make Frijoles Charros
Start with the beans, since they will take awhile to simmer from dried to tender. In a large pot or Dutch-oven, add a pound of rinsed and sorted pinto beans, white onion, garlic, salt, and fresh epazote sprigs (or bay leaves).

Add enough water to cover the beans plus 2-3-inches, about 10 cups. Bring to a boil, cover, and lower to a simmer. Let the beans and aromatics simmer for 1 ½ - 2 hours until the beans are tender.

After an hour or so, start cooking the fillings. Bring a large skillet to medium heat and add chopped bacon. Cook for 10-15 minutes until it is as crispy as you prefer. Remove the bacon with a slotted spoon and place in a paper towel lined plate and remove excess bacon grease if needed until 1-2 tablespoons remain.
Add the ham to the skillet (and hot dogs if using) and cook for 2-3 minutes. Remove and set them aside with the bacon.

Now add the chorizo and break it up with a wooden spoon. After breaking up, add diced onion and cook for 7-8 minutes, until the chorizo is cooked through and the onion is softened. Add the jalapeno or serrano and sauté for another 2-3 minutes.

Add the minced garlic, seasonings, and chipotle with some adobo. Break up the chipotle and cook for another 1-2 minutes, until the garlic is fragrant. Finally, add the diced Roma tomatoes.

Continue cooking until the tomatoes break down and release their juices, about 7-8 minutes longer. Now return the cooked bacon and ham (and hot dogs) and stir to combine.

Once the beans are tender, remove the epazote sprigs (or bay leaves), onion, and garlic. About 6 cups of liquid should remain. If less than that, add some more water or chicken stock. Add the meat and vegetable mixture to the beans and stir in the chopped fresh cilantro (and chicharrónes if using). Taste and salt if needed, then allow everything to simmer for about 10-15 minutes so the flavors can meld.
Ladel portions into bowls, garnish with a bit more chopped cilantro and serve.
📖 Charro Bean Variations
I love the flavor of this bean recipe as it is, but here are a few variations for spice levels and cooking methods to suit your needs.
Ingredient Variations
Spice Level – As written, I find the beans to have a nice, mild spice with smokiness from the chipotle. If you want it to be milder, use 1 jalapeno, omit the chipotle, and use chili powder instead of ancho. If you’d like it spicier, swap the jalapeno for 1-2 serrano chiles and use chipotle powder or cayenne instead of the ancho powder.
Soaking Beans – In a lot of bean recipes I’ll soak them overnight or do a hot soak method before cooking. In charro beans there’s no need to presoak the pintos. Simmering them with aromatics takes longer but infuses the cooking liquid with lots of flavor as it reduces.
Canned Beans – If you’re in a rush and want to make this recipe with canned beans, you can, but the flavor won’t be as deep. Use 4 15oz cans of pinto beans drained and rinsed. Skip to the end of the recipe where you would add the meat and vegetables to the beans. Combine them with about 6 cups of chicken stock or vegetable broth in a large pot or Dutch-oven and bring to a boil, then lower to a simmer for about 20 minutes and then serve.
Alternative Cooking Methods
Instant Pot – You can make this entire recipe in an Instant Pot if you choose. Do all the steps for the meat and vegetables in the Instant Pot set on Sauté mode, then add 6 cups of chicken stock, vegetable broth, or water and the rinsed beans. Secure the lid and change to Pressure Cook for 30 minutes, then naturally release steam for about 25 minutes and quick-release the rest.
Alternatively, add the beans, water, and aromatics as called for in the recipe and pressure cook just those ingredients. Cook the pork and vegetables on the stove-top and combine when the beans are done. This method can bring the cooking time down to about an hour.
Slow Cooker – Another alternative is to make charro beans in a slow cooker. I suggest cooking the bacon and everything else on the stove top as directed, then transfer the ingredients to the slow cooker. Add the dry beans with 6 cups of water or stock and cook on LOW for 8-10 hours or HIGH for 4-5 hours. Check on the liquid level occasionally and some more water if needed.

❄️ How to Store Charro Beans
Once cooled completely, you can store leftover charro beans in an airtight container in the refrigerator for 4-5 days. To reheat, add a portion to a microwave-safe bowl or container and microwave until hot throughout. Alternatively, reheat in a saucepan over medium heat until hot.
For longer storage, you can place completely cooled beans in a freezer-safe airtight container and freeze for 2-3 months. Thaw overnight in the fridge and reheat as above.
📋 Recipe

Mexican Charro Beans
Ingredients
For the Beans:
- 1 pound dry pinto beans, 2 cups
- ½ medium white onion
- 2 cloves garlic, smashed
- 1-2 sprigs fresh epazote, or 1 bay leaf, see note
- 1 teaspoon kosher salt
- 10 cups water
Meat & Veggies:
- 5 slices bacon, chopped
- 4 ounces cooked ham, 1 cup cubed
- 6 ounces Mexican chorizo, see note
- ½ medium white onion, diced
- 1-2 jalapenos, seeded and diced, or serrano
- 2 cloves garlic, minced
- 1 chipotle in adobo, optional
- ½ teaspoon ground cumin
- ½ teaspoon smoked paprika
- ½ teaspoon Mexican oregano, see note
- ½ teaspoon ground ancho, optional
- ½ teaspoon ground black pepper
- 3 large Roma tomatoes, diced
- ½ cup chopped fresh cilantro, optional
- Kosher salt to taste
Directions
- Start with the beans, since they will take awhile to simmer from dried to tender. In a large pot or Dutch-oven, add a pound of rinsed and sorted dry pinto beans, ½ a medium white onion, 2 cloves of smashed garlic, 1-2 sprigs fresh epazote (or a bay leaf), and 1 teaspoon kosher salt.
- Add enough water to cover the beans plus 2-3-inches, about 10 cups. Bring to a boil, cover, and lower to a simmer. Let the beans and aromatics simmer for 1 ½ - 2 hours until the beans are tender.
- After an hour or so, start cooking the fillings. Bring a large skillet to medium heat and add 5 slices of chopped bacon. Cook for 10-15 minutes until it is as crispy as you prefer. Remove the bacon with a slotted spoon and place in a paper towel lined plate and remove excess bacon grease if needed until 1-2 tablespoons remain.
- Add 1 cup cubed ham to the skillet (and 4-5 sliced hot dogs if using) and cook for 2-3 minutes. Remove and set them aside with the bacon.0
- Now add 6-ounces Mexican chorizo and break it up with a wooden spoon. After breaking it up, add the other ½ a medium white onion (diced) and cook for 7-8 minutes, until the chorizo is cooked through and the onion is softened. Add the diced 1-2 jalapeno or serrano and sauté for another 2-3 minutes.
- Add 2 cloves minced garlic, 1 chipotle with some adobo, ½ teaspoon ground cumin, ½ teaspoon smoked paprika, ½ teaspoon Mexican oregano, ½ teaspoon ground black pepper, and ½ teaspoon ground ancho. Break up the chipotle and cook for another 1-2 minutes, until the garlic is fragrant. Finally, add 3 diced Roma tomatoes. Continue cooking until the tomatoes break down and release their juices, about 7-8 minutes longer.
- Now return the cooked bacon and ham (and hot dogs) and stir to combine.
- Once the beans are tender, remove the epazote sprigs (or bay leaf), onion, and garlic. About 6 cups of liquid should remain. If less than that, add some more water or chicken stock. Add the meat and vegetable mixture to the beans and stir in ½ cup chopped fresh cilantro (and 8oz chopped chicharrónes if using). Taste and salt if needed, then allow everything to simmer for about 10-15 minutes so the flavors can meld.
- Ladel portions into bowls, garnish with a bit more chopped cilantro and serve.







Comments
No Comments