Frijoles Charros (Mexican Charro Beans)

Sharing is caring!

Last Updated on August 18, 2025 by Casia Valdés

Few side dishes capture the essence of Mexican comfort food quite like Frijoles Charros, also known as Mexican Charro Beans. This hearty, brothy bean dish is loaded with smoky bacon, fire-roasted tomatoes, and a kick of fresh chiles. Traditionally served alongside grilled meats, these beans are a staple at cookouts, fiestas, and Sunday family lunches.

The name “charro” comes from the traditional Mexican horsemen—charros—who would often prepare this dish out in the open air during long days of ranch work. It’s rustic, filling, and made with ingredients that were easy to find and cook in one pot. Today, it’s beloved not only for its deep, smoky flavor but also for its versatility—you can enjoy it as a side dish, a soup, or even a main course with a stack of warm tortillas.

The magic of Frijoles Charros lies in their layers of flavor: creamy pinto beans, salty-crisp bacon, tangy fire-roasted tomatoes, and the bright freshness of cilantro. And while this recipe stays true to tradition, it’s also easy to make in your own kitchen with just a few pantry staples and fresh ingredients.

Why You’ll Love This Recipe

  • Bold, Smoky Flavor: Bacon, fire-roasted tomatoes, and chiles create a deep, satisfying taste.

  • Versatile Dish: Works as a side, main, or even a hearty soup.

  • Meal Prep Friendly: Tastes even better the next day.

  • Authentic Yet Adaptable: Traditional flavor with simple, accessible ingredients.

  • Crowd Pleaser: Perfect for cookouts, potlucks, and family gatherings.

Ingredients You’ll Need (Serves 8)

  • 1 pound (450g) dried pinto beans

  • 2 tablespoons kosher salt (for soaking)

  • 6 cups (1.4 liters) low-sodium chicken broth (homemade or store-bought)

  • 2 bay leaves

  • 2 fresh epazote sprigs (optional, for authentic flavor)

  • 12 ounces (340g) thick-cut bacon, diced

  • 1 medium white or yellow onion, finely chopped (about 8 ounces / 225g)

  • 2 serrano chiles or 1 jalapeño, minced (seeded for less heat)

  • 3 garlic cloves, minced (about 1 tbsp / 12g)

  • 2 cans (14 ounces / 400g each) fire-roasted diced tomatoes

  • 1 large handful fresh cilantro, chopped (leaves and tender stems)

  • Additional kosher salt, to taste

Step-by-Step Instructions

1. Soak the Beans

Place pinto beans in a large bowl and cover with water by at least 4 inches. Stir in 2 tablespoons of kosher salt until dissolved. Soak at room temperature for 8–12 hours. Drain and rinse before cooking.

2. Simmer the Beans

In a Dutch oven, combine soaked beans, chicken broth, bay leaves, and epazote (if using). Bring to a boil, then reduce to a gentle simmer. Cover and cook for about 45 minutes, until beans are just tender.

3. Cook the Bacon and Aromatics

In a large skillet over medium-high heat, cook bacon until fat renders and edges are crisp—about 5 minutes.
Add diced onions and minced chiles; sauté until softened, about 4 minutes. Stir in minced garlic and cook for 30 seconds.

4. Build the Flavor Base

Add fire-roasted tomatoes to the skillet. Scrape up browned bits from the bottom and simmer for 3 minutes, allowing the mixture to thicken.

5. Combine and Finish Cooking

Stir the bacon-tomato mixture into the beans. Cook uncovered for another 20 minutes, until broth thickens into a rich, soupy consistency.

6. Season and Serve

Taste and adjust with salt if needed. Remove bay leaves, stir in chopped cilantro, and serve hot.

Pro Tips for Success

  • Don’t Skip the Soak: Soaking beans shortens cooking time and improves texture.

  • Epazote for Authenticity: Adds a subtle herbal note and helps with bean digestion.

  • Control the Heat: Use serranos for a kick or jalapeños for a milder flavor.

  • Bacon Depth: Let bacon get slightly crisp for maximum smoky flavor in the broth.

Serving Suggestions

  • Serve as a side dish with grilled steak, chicken, or carnitas.

  • Enjoy as a main dish with warm tortillas.

  • Spoon over Mexican rice for a hearty, filling meal.

Storage & Leftovers

  • Refrigerator: Store in an airtight container for up to 1 week.

  • Freezer: Freeze for up to 3 months. Thaw in the fridge overnight before reheating.

  • Reheat: Warm gently on the stove or in the microwave.

Why This Recipe Works

This recipe builds flavor in layers—bacon for smoky depth, chiles for heat, tomatoes for acidity, and cilantro for freshness. Cooking the beans in broth instead of water infuses them with savory richness, while the final simmer brings everything together into a cohesive, soul-warming dish.

Recipe FAQ

Q: Can I use canned beans instead of dried?
A: Yes—use 3 (15-ounce) cans of pinto beans, rinsed and drained. Reduce simmer time to about 15 minutes.

Q: Can I make this vegetarian?
A: Absolutely—skip the bacon and use vegetable broth. Add smoked paprika for depth.

Q: How spicy are these beans?
A: Medium heat with serranos; use jalapeños or remove seeds for milder flavor.

Q: What’s the best broth to use?
A: Homemade chicken broth is ideal, but store-bought works perfectly.

Final Thoughts

Frijoles Charros are the ultimate Mexican comfort food—smoky, savory, and brimming with flavor. They’re hearty enough to be a meal on their own yet versatile enough to serve as the perfect side dish for grilled meats or tacos.

This is a dish that rewards you for taking your time. Each bite carries a taste of tradition, and like all great recipes, it’s even better the next day.

Frijoles Charros (Mexican Charro Beans)

Smoky, savory pinto beans simmered with bacon, chiles, and fire-roasted tomatoes. A classic Mexican side dish perfect for any feast.
Prep Time 15 minutes
Cook Time 1 hour 20 minutes
Soaking Time 8 hours
Total Time 9 hours 35 minutes
Servings: 8
Course: Dinner, Lunch, Main Course
Cuisine: Mexican

Ingredients
  

  • 1 pound 450g dried pinto beans
  • 2 tablespoons kosher salt for soaking
  • 6 cups 1.4 liters low-sodium chicken broth (homemade or store-bought)
  • 2 bay leaves
  • 2 fresh epazote sprigs optional, for authentic flavor
  • 12 ounces 340g thick-cut bacon, diced
  • 1 medium white or yellow onion finely chopped (about 8 ounces / 225g)
  • 2 serrano chiles or 1 jalapeño minced (seeded for less heat)
  • 3 garlic cloves minced (about 1 tbsp / 12g)
  • 2 cans 14 ounces / 400g each fire-roasted diced tomatoes
  • 1 large handful fresh cilantro chopped (leaves and tender stems)
  • Additional kosher salt to taste

Method
 

Soak the Beans
  1. Place pinto beans in a large bowl and cover with water by at least 4 inches. Stir in 2 tablespoons of kosher salt until dissolved. Soak at room temperature for 8–12 hours. Drain and rinse before cooking.
Simmer the Beans
  1. In a Dutch oven, combine soaked beans, chicken broth, bay leaves, and epazote (if using). Bring to a boil, then reduce to a gentle simmer. Cover and cook for about 45 minutes, until beans are just tender.
Cook the Bacon and Aromatics
  1. In a large skillet over medium-high heat, cook bacon until fat renders and edges are crisp—about 5 minutes.
  2. Add diced onions and minced chiles; sauté until softened, about 4 minutes. Stir in minced garlic and cook for 30 seconds.
Build the Flavor Base
  1. Add fire-roasted tomatoes to the skillet. Scrape up browned bits from the bottom and simmer for 3 minutes, allowing the mixture to thicken.
Combine and Finish Cooking
  1. Stir the bacon-tomato mixture into the beans. Cook uncovered for another 20 minutes, until broth thickens into a rich, soupy consistency.
Season and Serve
  1. Taste and adjust with salt if needed. Remove bay leaves, stir in chopped cilantro, and serve hot.