Soups & Stews
This authentic Mexican pinto bean soup recipe delivers the rich, comforting flavors of frijoles de la olla—just like your abuela used to make. The secret lies in slow-simmered pinto beans, hominy, and earthy epazote, all balanced with cumin and oregano for that unmistakable Mexican soul.
Every spoonful carries tradition, from the crispy tortilla strips topping to the tender beans that practically melt in your mouth.
What sets this recipe apart is the attention to detail: soaking beans overnight for maximum tenderness, simmering low and slow to develop deep flavor, and adjusting seasoning at the end for perfect balance.
The optional bacon or lard adds richness, but this version stays true to vegetarian roots while keeping that authentic taste. It’s the kind of soup that warms the soul and fuels the body—perfect for chilly evenings or family gatherings.
The result is a hearty, flavorful soup with crispy tortilla strips that add textural contrast, while the beans and hominy create a creamy, satisfying base. Serve it with warm tortillas, steamed rice, or a dollop of avocado for a complete meal.
This isn’t just a recipe; it’s a taste of home, made simpler for your kitchen.
Whether you’re new to Mexican cooking or a seasoned pro, this method ensures restaurant-quality results every time. The key is patience—letting the flavors meld and the beans soften just right. Ready to make a pot that’ll have everyone asking for seconds? Let’s get started.
Ingredients for authentic mexican pinto bean soup
Sixteen ingredients, one soulful pot of tradition—where earthy beans meet crispy tortilla magic.
| Ingredient | Amount | Notes |
|---|---|---|
| Pinto Beans 🌿 | 2 cups | Dried, soaked overnight |
| Hominy 🍆 | 1 can | Drained, rinsed |
| Yellow Onion 🧅 | 1 whole | Chopped, medium size |
| Garlic Cloves 🧄 | 4 cloves | Minced, fresh preferred |
| Dried Epazote 🌿 | ½ tsp | Crumbled, earthy flavor |
| Ground Cumin 🌶️ | 1 tbsp | Toasted for depth |
| Dried Oregano 🍃 | 1 tbsp | Mexican oregano preferred |
| Bay Leaves 🌿 | 2 whole | Removed before serving |
| Vegetable Broth 💧 | 6 cups | Low-sodium preferred |
| Corn Tortillas 🍞 | 6 whole | For crispy strips |
| Extra-Virgin Olive Oil 🫒 | 2 tbsp | For crisping tortillas |
| Lime 🍋 | 1 whole | Juiced, for brightness |
| Salt 🧂 | 1 ½ tsp | Adjust to taste |
| Black Pepper 🌶️ | ½ tsp | Freshly ground |
| Avocado 🥑 | 1 whole | Sliced, optional garnish |
The pinto beans are the heart of this soup, so choose dried beans over canned—they develop deeper flavor when soaked overnight. Mexican markets or bulk bins often carry high-quality dried beans, but any organic brand works. The hominy should be in water, not brine, for a cleaner taste. For epazote, local Latin markets are your best bet—it’s harder to find in regular grocery stores. Toast your cumin seeds in a dry pan for 30 seconds before grinding to release their aroma. That little step makes all the difference.
No epazote? Fresh cilantro or a pinch of dried marjoram adds brightness, though nothing quite matches its earthy kick. Running short on vegetable broth? Water plus a bouillon cube works in a pinch, but the flavor won’t be as rich. For the tortilla strips, corn tortillas are non-negotiable—they crisp up perfectly, while flour tortillas turn soggy. If you can’t find Mexican oregano, regular oregano at half the amount will do, but you’ll miss that authentic depth. The lime should be freshly juiced—bottled lime juice lacks the zing.
This soup tastes even better the next day as flavors meld. Store in an airtight container in the fridge for up to 5 days. For the tortilla strips, fry them fresh or store in an airtight container for 2 days—they lose crispness quickly. Freeze the soup (without strips) for 3 months. To reheat, add a splash of broth to prevent drying. Double the batch—leftovers make perfect lunches or a quick dinner. Garnish with avocado slices just before serving to keep them fresh.
Why You'll Love This Recipe
- I’ll be real: I used to dread soaking beans. But this recipe skips that step entirely—just toss dried pintos in a pot with onion and garlic, and let them simmer. The beans soften perfectly while absorbing all that deep, savory flavor from the hominy and epazote.
- No-Soak Necessary: I’ll be real: I used to dread soaking beans. But this recipe skips that step entirely—just toss dried pintos in a pot with onion and garlic, and let them simmer. The beans soften perfectly while absorbing all that deep, savory flavor from the hominy and epazote.
- Earthy, Herby Magic: That little packet of dried epazote might look unassuming, but it’s the secret weapon. It gives the soup this bright, almost anise-like kick that cuts through the richness of the hominy and onions. Honestly, it’s the kind of flavor that makes you go back for seconds without even trying.
- Weeknight to Potluck: Between us, this soup is my go-to for lazy Mondays and Sunday gatherings. Make a big batch on Sunday—it reheats beautifully—and you’ll have leftovers for days. Add a sprinkle of cotija cheese and avocado slices when serving, and suddenly you’ve got a showstopper that feels fancy but took zero effort.
Step-by-step instructions for authentic Mexican pinto bean soup
Here's how to build the soul of Mexican comfort food—rich, smoky, and topped with crispy tortilla magic.
Prepare the Beans and Aromatics
In a large Dutch oven, combine the 2 cups pinto beans (drained from soaking), 1 can hominy (drained), 1 whole yellow onion (chopped), and 4 cloves garlic (minced). Add 1 tbsp ground cumin, 1 tbsp dried oregano, 0.5 tsp dried epazote, 2 whole bay leaves, 1.5 tsp salt, and 0.5 tsp black pepper. Stir gently to coat the beans evenly.
This is where the flavor foundation begins. The epazote adds that distinctive Mexican herbal note, while the cumin and oregano create the warm, earthy backbone. Don't skip the bay leaves—they infuse subtle depth without overpowering. The beans should be fully submerged in liquid as they cook, so if needed, add a splash of water now.
Simmer the Bean Mixture
Pour in 6 cups vegetable broth until the beans are completely covered by about 1 inch. Bring to a boil over medium-high heat, then immediately reduce to a gentle simmer. Cover partially and cook for 45-60 minutes, stirring occasionally, until the beans are tender but not mushy—they should hold their shape but still be creamy when mashed between your fingers.
Resist the urge to rush this step. The beans need time to absorb all those aromatic spices and develop their signature creamy texture. If the liquid reduces too much before the beans are done, add ½ cup hot broth at a time to maintain the proper consistency. The soup should finish with a thick, stew-like texture, not watery.
Create the Crispy Tortilla Strips
While the beans simmer, cut the 6 whole corn tortillas into ¼-inch thick strips. Heat 2 tbsp extra-virgin olive oil in a dry skillet over medium heat until shimmering. Working in batches, add the tortilla strips and fry for 2-3 minutes per side until deep golden brown and crispy. Drain on paper towels and sprinkle lightly with salt while still warm.
This is the magic topping that transforms ordinary soup into something extraordinary. The high heat creates that perfect crunch, while the salt enhances their flavor. Don't overcrowd the pan or the tortillas will steam instead of crisp. If they brown too quickly, reduce the heat slightly—you want caramelization, not burning.
Finish and Serve
Once the beans are tender, discard the bay leaves. Stir in the juice of 1 whole lime and adjust seasoning with additional salt if needed. The soup should be bright, flavorful, and balanced—acidic from the lime, rich from the beans, and aromatic from the spices. Ladle into bowls and top immediately with the crispy tortilla strips.
For serving, slice 1 whole avocado and arrange the slices alongside each bowl. The creamy avocado provides a perfect contrast to the hearty soup and crispy topping. Serve with warm tortillas on the side for scooping up every last drop of that smoky, spiced bean broth.
Pro Tips For Making Authentic Mexican Pinto Bean Soup
- SOAK BEANS 8 HOURS: I learned this the hard way—skipping the overnight soak leaves you with tough, mealy pinto beans that refuse to break down. Use 2 cups dried beans to 6 cups water, cover, and let them sit on the counter (yes, even if you’re impatient like me). The longer they soak, the creamier the final texture.
- CARAMELIZE ONIONS LOW: Don’t rush this step—slow and steady wins the flavor. Cook the yellow onion over medium-low heat for 15-20 minutes until deep golden brown, stirring occasionally. High heat burns them before they sweeten; low heat builds the depth this soup needs.
- ADD EPAZOTE LATE: This herb is potent, and adding it too early turns the soup bitter. Toss the dried epazote into the last 5 minutes of simmering, or even just before serving. If using fresh, chop it finely—it’s the only way to avoid mouthfuls of stringy stems.
- SIMMER HOMINY UNTIL TENDER: Hominy’s the backbone of this soup, but it’s easy to undercook it. After adding the hominy to the pot, simmer for at least 20 minutes—it should be soft enough to mash slightly with a fork. Overcooking? No such thing here; mushy hominy means a richer, heartier soup.
Essential equipment for perfect results
Dutch Oven
The enamel Dutch oven is my go-to for this recipe—it’s the workhorse of Mexican home kitchens for good reason. Look for a 5-6 quart size with sturdy handles, like the Le Creuset Stoneware or All-Clad Stainless Steel.
The thick base distributes heat evenly, preventing hot spots that can burn your beans. I’ve tried other pots, but nothing holds up to the slow simmer like a Dutch oven. If you don’t own one, a heavy-bottomed stockpot works in a pinch. 🔥
Skillet for Tortillas
A non-stick skillet (like Calphalon or T-fal) is ideal for crisping the tortilla strips—it heats quickly and releases them effortlessly. But if you’re frying in batches, a cast-iron skillet (like Lodge) works even better for high-heat searing.
Avoid thin, flimsy pans—they won’t get hot enough to create that perfect crunch. I keep mine on the stove while the soup simmers, so it’s ready to go when the beans are tender. Pro tip: Use a tongs to flip the strips for even browning. ✨
Immersion Blender
While not strictly necessary, an immersion blender (like Ninja or Magic Bullet) is a game-changer for achieving that creamy yet chunky texture without overworking the beans. Pulse the soup for 10-15 seconds at the end if you prefer a smoother consistency, but leave some texture for that rustic feel.
If you don’t have one, a hand masher or wooden spoon works—just mash a few beans directly in the pot. The key is to blend after the beans are fully cooked, not before. 💫
Measuring Spoons
Precision matters with spices like epazote and cumin—a set of stainless steel measuring spoons (like OXO Good Grips) ensures you’re using the exact ½ tsp of epazote or 1 tbsp of cumin called for. I keep mine near my stove for quick adjustments.
For the lime juice, a reamer (like Citrus Juicer) makes juicing fresh limes effortless. Don’t skip measuring—these small amounts make a big difference in balancing flavors. 🍋
Tongs for Crispy Toppings
Kitchen tongs (like OXO Good Grips) are essential for handling the hot, crispy tortilla strips without crushing them. I use them to transfer strips from the skillet to paper towels and even to sprinkle salt while they’re still sizzling. A slotted spoon works too, but tongs give you better control. Keep them handy while frying—you’ll want to work quickly to maintain that perfect crunch. 💪
Nutrition facts
Frequently asked questions
Can I make this soup without soaking the beans overnight?
You can, but your beans won't be as tender or flavorful. For best results, soak dried pinto beans for 8-12 hours to remove anti-nutrients and improve digestion. If short on time, use quick-soak method: Boil beans for 2 minutes, then let them sit covered in hot water for 1 hour. Never skip soaking with canned beans—they lack the depth of flavor.
What can I use if I can't find epazote?
Epazote is key for authentic flavor, but you can substitute with ½ tsp dried marjoram or 1 tbsp fresh cilantro for brightness. For a closer match, try ½ tsp dried tarragon. If nothing else works, skip it—the soup will still be delicious, just missing that signature herbal note. Mexican markets often carry epazote fresh or dried.
How do I make this soup vegan?
This recipe is already vegetarian-friendly, but for vegan version, replace vegetable broth with mushroom or vegetable bouillon made with water. Skip any optional bacon/lard and use olive oil instead. The beans, hominy, and spices provide all the richness needed—just ensure your broth is plant-based. The crispy tortilla strips remain vegan as long as you use corn tortillas.
Can I make this soup in a slow cooker?
Combine all ingredients (except tortilla strips) in your slow cooker and cook on LOW for 6-7 hours or HIGH for 3-4 hours. The low-and-slow method enhances flavor beautifully. Add broth as needed to maintain liquid level. For crispy tortilla strips, fry them fresh before serving—slow cookers won't crisp them properly.
Why does my soup taste too bitter?
Bitterness often comes from overcooked beans or too much epazote. If this happens, stir in 1 tbsp lime juice or ½ tsp sugar to balance flavors. For next time, reduce cooking time slightly and taste-test before adding all the epazote. Also check your broth—low-quality or salty broth can contribute to bitterness. Fresh herbs like cilantro can help mask bitterness too.
