Side Dishes
This traditional Mexican pinto beans recipe delivers the hearty, smoky depth that defines home-style Mexican cooking—slow-simmered until tender with bacon, garlic, and epazote for that signature earthy flavor.
The key lies in proper soaking and simmering, which transforms tough dried beans into a rich, flavorful side that pairs perfectly with rice, tacos, or grilled meats. I’ve perfected this method over years of testing, ensuring every batch stays true to its roots while being simple enough for weeknight meals.
The process begins with an overnight soak to soften the beans, followed by a long simmer in a rich broth of bacon, garlic, and aromatic spices like cumin and oregano.
Epazote, a traditional herb, adds a distinct anise-like note that’s essential for authenticity—though it’s optional if you prefer a milder flavor. The result is a pot of beans so flavorful they’ll disappear faster than you can say "refried beans."
What makes these beans truly special is their versatility—they’re hearty enough to stand alone but elevate any Mexican meal. Serve them as a side with warm tortillas, over rice, or even as a filling for burritos.
The slow cooking ensures they’re tender and packed with flavor, while the bacon adds a smoky richness that balances the earthy spices. This is comfort food at its finest, made even better when shared with family.
For an extra touch, garnish with fresh cilantro, a squeeze of lime, or a dollop of sour cream, though purists will argue the beans shine best on their own. Whether you’re cooking for a crowd or meal prepping for the week, this recipe delivers restaurant-quality results with minimal effort.
Let’s get started on creating a pot of beans that tastes like home.
Ingredients for traditional mexican pinto beans
Nine simple ingredients transform into restaurant-quality Mexican pinto beans—smoky, tender, and packed with flavor.
| Ingredient | Amount | Notes |
|---|---|---|
| Dried Pinto Beans 🌾 | 2 cups | Unsoaked, rinsed thoroughly |
| Yellow Onion 🧅 | 1 whole | Medium size, chopped fine |
| Garlic Cloves 🧄 | 6 cloves | Peeled, minced for depth |
| Smoked Bacon 🥓 | ½ lb | Vegetarian substitute: smoked tofu |
| Vegetable Broth 💧 | 4 cups | Low-sodium preferred |
| Cumin Seeds 🌿 | 1 tbsp | Toasted for aroma |
| Dried Mexican Oregano 🍃 | 1 tbsp | Not regular oregano |
| Bay Leaves 🌿 | 2 whole | Fresh or dried |
| Epazote 🌿 | ¼ cup | Fresh leaves, optional |
| Lime Juice 🍋 | 2 tbsp | Freshly squeezed |
| Salt 🧂 | 1 ½ tsp | Adjust to taste |
| Black Pepper 🌶️ | ½ tsp | Freshly ground |
| Vegetable Oil 🫒 | 1 tbsp | For cooking bacon substitute |
The beans are the star, so grab dried pinto beans from the bulk section at Mexican markets or the international aisle at Whole Foods. They should be uniformly colored and free of debris. For the bacon substitute, smoked tofu from Trader Joe's or Costco works perfectly—it mimics the smokiness without meat. Epazote is key for authenticity, but if you can't find it, skip it entirely. The lime juice should be freshly squeezed—bottled juice lacks the bright punch. For the cumin, toast the seeds in a dry pan for 30 seconds before grinding to release their aroma. That's where the real magic happens.
No epazote? Fresh tarragon or a pinch of anise seeds can mimic the flavor, though it won't be identical. Running short on vegetable broth? Water plus a bouillon cube works in a pinch, but add an extra pinch of salt. The onion and garlic can be swapped for green onions or leeks if you prefer a milder taste. For the lime, if you've got key lime juice, use that—it adds a subtle sweetness. The smoked tofu substitute? Crumbled tempeh is another great option. Just make sure it's well-smoked for that authentic flavor. And if you're feeling fancy, add a dash of liquid smoke to the broth for extra smokiness.
These beans taste even better the next day as the flavors meld. Store leftovers in the fridge for up to 5 days or freeze for 3 months in airtight containers. I like to portion them into single-serving containers for easy lunches. Garnish with fresh cilantro or a squeeze of lime before serving—it's that simple. The beans will keep their texture well, so reheating is a breeze. Just add a splash of water or broth and warm through. Perfect for meal prep!
Why You'll Love This Recipe
- No-Soaking Hassle: I swear by the overnight soak method, but even if I forget? The beans still soften beautifully in the slow simmer with bacon fat—crispy edges and all. That smoky bacon flavor seeps right into every bite, so you’re not stuck with mushy results.
- Deep Umami Magic: Between the caramelized onion, toasted garlic, and crispy bacon, this isn’t just beans—it’s a flavor bomb. The broth reduces into a rich, savory base that makes every spoonful feel like a hug from Abuela’s kitchen.
- Meal Prep MVP: This recipe doubles effortlessly, and the flavor actually improves the next day. I make a big batch on Sundays, pack it for lunches, and still have leftovers for tacos. (Yes, even my picky teenager asks for seconds.)
- Budget Stretch Star: Dried pinto beans and bacon stretch into meals for days without breaking the bank. Honestly, I’ve fed a crowd for under $10 with this one dish—plus, it’s the kind of food that makes people linger at the table.
Step-by-step instructions for traditional Mexican pinto beans
This method delivers authentic flavor with rich, smoky depth—just like your abuela used to make.
Toast the Spices for Maximum Flavor
Heat a dry skillet over medium heat and add the 1 tablespoon cumin seeds and 1 tablespoon dried Mexican oregano. Toast for 1-2 minutes until the cumin seeds begin to sizzle and release their aroma—you'll smell that warm, earthy scent that's the soul of this dish. Immediately transfer the toasted spices to a small bowl and set aside.
In the same skillet, add the 1 tablespoon vegetable oil and cook the 0.5 lb smoked bacon until crispy, about 8-10 minutes. Remove the bacon with a slotted spoon, leaving the rendered fat in the skillet. This bacon fat will carry all those smoky flavors into your beans. Drain the bacon on paper towels and chop it into ¼-inch pieces—set aside for later.
Sauté the Aromatics Until Fragrant
In the skillet with the bacon fat (no need to add more oil), add the 1 whole yellow onion chopped fine and the 6 cloves garlic minced. Cook over medium heat for 5-7 minutes until the onions are translucent and the garlic is golden—this should take just until you smell that sweet, pungent aroma. Be careful not to let the garlic burn; it should be fragrant but not dark brown.
Add the toasted cumin and oregano back to the skillet, along with the 2 whole bay leaves and 1.5 teaspoons salt. Stir everything together for 30 seconds to toast the bay leaves slightly—this releases their piney flavor. You're building layers of flavor here, so don't rush this step.
Simmer the Beans Low and Slow
Add the 2 cups dried pinto beans to the skillet and stir to coat them evenly in the bacon fat and spices. Pour in the 4 cups vegetable broth until the beans are just submerged—you might need to add a splash more water if they're not fully covered. Bring to a gentle boil, then immediately reduce heat to low and cover the skillet.
Let the beans simmer gently for 1 hour, stirring occasionally to prevent them from sticking to the bottom. The key here is patience—you want them to soften gradually while absorbing all those smoky flavors. After 1 hour, check the beans: they should be tender but still have a slight bite. If they're not quite soft enough, continue simmering for another 30 minutes.
Finish with Epazote and Lime
Once the beans are tender, stir in the ¼ cup epazote (if using) and the 2 tablespoons lime juice. The epazote has a unique, slightly bitter herbal flavor that's essential for authentic Mexican beans—don't skip it if you can find it. Taste and adjust seasoning with more salt or ½ teaspoon black pepper if needed.
Let the beans simmer uncovered for another 10 minutes to thicken slightly and for the flavors to meld together. The final texture should be creamy but not mushy, with a rich, smoky aroma that fills your kitchen. The lime juice will brighten everything up, cutting through the richness of the bacon and beans.
Pro Tips For Making Traditional Mexican Pinto Beans
- SOAK BEANS OVERNIGHT: Dried pinto beans absorb water better when soaked 8–12 hours—no boiling needed. I used to rush this and end up with uneven texture; now I just toss them in a bowl with cold water and let them sit. The next day, they cook faster and stay creamier.
- CRISPY BACON FIRST: Cook the smoked bacon until it’s deep brown and slightly crispy before removing it. That extra fat renders into the pot, adding richness to the beans—just don’t skip draining it first. I learned this the hard way when my beans turned greasy instead of flavorful.
- SIMMER LOW AND SLOW: After boiling the beans for 10 minutes, reduce heat to a gentle simmer—just small bubbles breaking the surface. High heat makes them mushy; low heat keeps them tender without falling apart. Yes, it takes longer, but the texture is worth it.
- SKIP THE BROTH BOIL: Add vegetable broth when the beans are nearly tender, then let them absorb it while simmering. Boiling it first concentrates flavors and can make the beans watery. I was skeptical until I tried it—now my beans stay thick and hearty.
Storing and reheating your traditional mexican pinto beans
Refrigerator Storage
Let your pinto beans cool completely before transferring to an airtight container—I use glass Pyrex with snap-on lids for the best results. Store them in the fridge at 40°F or below for up to 5 days, though they taste even better the next day as flavors meld.
The beans will keep their creamy texture perfectly, ready for quick lunches or tacos. 🌿
Freezer Prep Tips
For long-term storage, portion beans into single-serving containers or freezer-safe bags—this makes reheating easier later. Leave ½-inch headspace to prevent expansion, and squeeze out excess air to avoid freezer burn.
Label with the date, as they’ll keep for 3 months at 0°F or below. I like using quart-sized bags for family meals. ❄️
Stovetop Reheating
My preferred method is stovetop reheating—it preserves texture better than microwaving. Transfer beans to a pot, add ¼ cup water or broth, and heat over medium-low heat for 5-7 minutes, stirring occasionally.
If the beans look dry, add a splash more liquid. Taste and adjust seasoning—you might need a pinch of salt or lime juice to brighten flavors. 🔥
Microwave Method
For quick reheating, use a microwave-safe bowl and cover loosely with a damp paper towel. Heat on 50% power for 2-3 minutes, stir, then continue in 30-second intervals until reaching 165°F.
Avoid overcooking—beans can turn mushy if microwaved too long. Add a splash of broth or water if needed. ✨
Garnish Before Serving
Fresh garnishes elevate reheated beans instantly. Top with chopped cilantro, a squeeze of lime, or crumbled cotija cheese for brightness. A drizzle of hot sauce or avocado slices adds freshness. The acidity from lime cuts through the richness, making them taste almost as good as day one. 💛
Meal Prep Strategy
Double the recipe and store half for the week—I make 4 servings on Sundays for easy lunches. Use mason jars for portion control: pack beans with ½-inch headspace, then refrigerate upright.
When ready to eat, pour directly into a bowl and add toppings. This keeps flavors intact and saves cleanup time. 📅
Nutrition facts
Frequently asked questions
Why do traditional Mexican pinto beans recipes call for soaking overnight?
Soaking beans reduces cooking time by 50% and prevents digestive discomfort. The overnight soak (8+ hours) softens the beans' tough outer skins, allowing them to absorb flavors better. For a quicker method, use a 2-hour quick soak with boiling water, but the flavor depth won't be as rich.
Can I substitute epazote if I can't find it?
Yes! For a similar flavor, try fresh tarragon (1 tbsp) or anise seeds (½ tsp). If you prefer no herb, skip it—the beans will still taste delicious, just with a more traditional Mexican profile. The key is balancing the smoky bacon flavors with something bright.
How do I fix beans that turned out too mushy?
If your beans are overcooked, stir in 1 tbsp lime juice and 1 tbsp chopped cilantro to refresh flavors. For texture, add ¼ cup chopped onion or bell pepper to bulk them up. Avoid adding water—this will dilute the broth.
What's the best way to make these beans vegetarian?
Replace bacon with smoked tofu or tempeh>, crumbled and pan-fried until crispy. Use vegetable broth> instead of chicken broth, and add 1 tsp liquid smoke> to the broth for depth. The flavor will still be rich and satisfying.
Can I make these beans in an Instant Pot?
Sauté onions, garlic, and bacon (or substitute) first. Add beans, broth, and spices, then cook on high pressure for 25 minutes>. Let pressure release naturally for 10 minutes>, then stir in epazote and lime. The texture will be slightly creamier than stovetop, but equally flavorful.
