Soups & Stews
This beef and bean curry recipe delivers restaurant-quality depth with a spiced tomato base that only gets better as it simmers. The secret lies in layering spices—cinnamon, cumin, and coriander—then letting them bloom in hot oil before adding the beef.
This slow-cooked version transforms tough cuts into tender, flavorful pieces while beans soak up every savory note.
What sets this curry apart is its dual-texture approach: crispy browned beef meets creamy, spiced beans in a rich tomato gravy. The longer it sits, the more complex the flavors become—caramelized spices meld with the meat’s natural richness.
I’ve tested this recipe both on the stovetop and in an Instant Pot, so you can choose your cooking method based on time.
Pair it with steamed basmati rice to soak up every last drop of sauce, or serve with warm naan for a hearty meal. The curry’s bold flavors balance perfectly with cooling sides like cucumber raita or a simple green salad.
For extra depth, finish with fresh cilantro and a squeeze of lime just before serving.
This recipe is foolproof yet flexible—adjust spice levels to taste, swap in different beans, or add coconut milk for a creamier texture. Whether you’re cooking for a weeknight dinner or a weekend gathering, this curry delivers warm, satisfying comfort with minimal effort.
Ingredients for beef and bean curry
Restaurant-quality depth starts with these carefully chosen ingredients for a curry that deepens with time.
| Ingredient | Amount | Notes |
|---|---|---|
| Chuck Roast 🥩 | 1 ½ lb | Cut into 1.5-inch cubes |
| Dried Black Beans 🌱 | 1 ½ cups | Soaked overnight or cooked |
| Diced Tomatoes 🍅 | 14 ½ oz | Canned, fire-roasted preferred |
| Yellow Onion 🧅 | 1 whole | Diced, medium size |
| Garlic Cloves 🧄 | 6 cloves | Minced, fresh preferred |
| Ground Cumin 🌿 | 1 tbsp | Toasted for deeper flavor |
| Ground Coriander 🌿 | 1 tbsp | Freshly ground preferred |
| Ground Cinnamon 🌿 | ½ tsp | Pure cinnamon, no substitutes |
| Turmeric Powder 🌶️ | ½ tsp | Bright yellow color |
| Garam Masala 🌶️ | 1 tsp | Store-bought blend works fine |
| Vegetable Oil 🫒 | 2 tbsp | High smoke point preferred |
| Tomato Paste 🍅 | 2 tbsp | Squeeze tube or canned |
| Beef Broth 💧 | 1 ½ cups | Low-sodium preferred |
| Fresh Cilantro 🌿 | ¼ cup | Chopped for garnish |
| Lemon Juice 🍋 | 1 tbsp | Freshly squeezed |
The chuck roast is your secret weapon here—it's tough enough to benefit from the long cooking time, breaking down into tender, flavorful pieces. Costco or Whole Foods usually carry it pre-cut, but if you're buying a whole roast, ask the butcher to cube it for you. Look for good marbling—those white fat streaks are what melt into flavor. The black beans? Dried is best—soak them overnight for the creamiest texture, but canned in a pinch works too. Just drain and rinse well to avoid a mushy curry. For the tomatoes, fire-roasted canned tomatoes add smoky depth, but regular will work if that's what you've got.
No cumin? Smoked paprika at half the amount gets you close, though it won't be quite the same. Running short on coriander? Dried cilantro at one-third the quantity works in a bind. The garam masala is where you can get fancy—Madras or Everest blends have great depth, but any store-bought version will do. For the tomato paste, Trader Joe's squeeze tubes are perfect—they're concentrated and last forever. Want to skip the paste? Just add an extra can of tomatoes. The onion and garlic are non-negotiable though—fresh is essential for that aromatic base.
This curry tastes even better the next day as the flavors meld. Store leftovers in an airtight container in the fridge for up to 5 days, or freeze for 3 months in portion-sized containers. I always double the batch—one for dinner, one for lunches. The spices lose potency over time, so if you're not using them all, transfer to an airtight jar. The fresh cilantro? Store it wrapped in damp paper towels in a bag—keeps for 5 days that way. And that lemon juice? Squeeze it fresh right before serving—it brightens everything up.
Why You'll Love This Recipe
- No-Chop Night Saved: I swear by this when I’m too tired to slice much—just dice the onion roughly, crush the garlic, and toss everything in. The black beans soften the texture, so you don’t even notice if the veggies aren’t perfect.
- Deep, Slow-Roasted Richness: That chuck roast? It falls apart like a dream after simmering, so tender it melts with the first bite. The tomatoes add just enough brightness to cut through the richness—like a hug in a bowl.
- Lunchbox Magic: Between us, this curry tastes even better the next day. Pack it in containers for work lunches, and the flavors deepen overnight. My coworkers think I’m a saint for bringing it—no takeout needed.
- Budget-Friendly Powerhouse: Chuck roast is cheap, dried beans last forever, and you’re using pantry staples. Honestly, it’s the kind of meal that makes me feel like I’m feeding a crowd without breaking the bank. Leftovers? They’re my secret weapon.
Step-by-step instructions for beef and bean curry
Here's the method for developing rich, layered flavors that intensify over time.
Sear the Chuck Roast for Deep Flavor
Heat a large Dutch oven over medium-high heat until it's smoking hot. Add the 2 tablespoons vegetable oil and swirl to coat the bottom evenly. Working in batches if needed, add the 1.5 lb chuck roast cut into 1.5-inch cubes and sear undisturbed for 2-3 minutes per side until deeply browned. This caramelization builds the foundation for your curry's depth.
Don't crowd the pan—this prevents the temperature from dropping and ensures proper browning. Once all the beef is browned, transfer it to a plate and set aside. The beef will continue cooking later, but this initial sear is critical for developing the Maillard reaction that creates complex flavors.
Build the Spiced Tomato Base
In the same Dutch oven, reduce heat to medium and add the 1 whole yellow onion and 6 cloves garlic cloves. Sauté for 4-5 minutes until the onions are soft and translucent, stirring occasionally. Add the 1 tablespoon ground cumin, 1 tablespoon ground coriander, 0.5 teaspoon ground cinnamon, and 0.5 teaspoon turmeric powder, stirring for 30 seconds to toast the spices and release their aromas.
Next, stir in the 2 tablespoons tomato paste and cook for 1 minute until it darkens slightly. Pour in the 14.5 oz diced tomatoes and 1.5 cups beef broth, scraping up any browned bits from the bottom of the pot. This deglazing step captures all the flavor you've built so far. Bring the mixture to a simmer and let it cook uncovered for 10 minutes to allow the spices to bloom and the flavors to meld.
Add Beans and Simmer Until Tender
Add the 1.5 cups dried black beans (previously soaked overnight or cooked) to the Dutch oven. Stir gently to combine with the tomato mixture. The beans should be partially submerged—if not, add a splash of water. Return to a simmer and cook uncovered for 45-50 minutes, stirring occasionally, until the beans are tender and the sauce has thickened slightly. You'll know it's ready when the beans easily mash between your fingers and the sauce coats the back of a spoon.
During this time, the spices will continue to develop, creating a complex, aromatic base. If the sauce reduces too much, add a little more broth or water to maintain the desired consistency. The longer you let this simmer, the more the flavors will meld together, creating that rich, deep taste that defines a great curry.
Finish with Garam Masala and Bright Acid
Once the beans are tender, stir in the 1 teaspoon garam masala and simmer for an additional 5 minutes to allow the spices to infuse into the curry. Taste and adjust the seasoning with salt if needed—this is where you can fine-tune the balance of flavors. The curry should be rich, slightly sweet from the tomatoes, and well-seasoned.
Remove the curry from heat and stir in the 1 tablespoon lemon juice. This bright acidity cuts through the richness of the curry and adds a fresh finish. Let the curry sit off the heat for 10 minutes to allow the flavors to fully integrate. This resting period is crucial—it lets the spices settle and the sauce thicken slightly, resulting in a more cohesive and flavorful dish.
Garnish and Serve with Fresh Herbs
Before serving, stir in the 0.25 cup fresh cilantro, reserving a few sprigs for garnish. The cilantro adds a fresh, bright note that contrasts beautifully with the rich, spiced curry. Serve the curry immediately, garnished with the reserved cilantro, over steamed rice or with warm naan bread. The flavors will continue to deepen as it sits, making this curry even more delicious the next day.
Each bite should deliver tender beef, creamy beans, and a complex blend of spices that linger on your palate. The tomato base should be rich and slightly thickened, with a balance of sweet, spicy, and tangy flavors. Enjoy your curry while it's hot, but don't be surprised if you find yourself reaching for seconds!
Pro Tips For Making Beef And Bean Curry
- CRUST THE BEEF FIRST: Dried black beans soak up moisture like sponges, but chuck roast needs a head start. Pat the meat dry, then sear it in a hot pan with oil until deep brown—this locks in flavor and keeps it from turning mushy later. (Yes, even if you’re impatient like me.)
- SOAK BEANS IN SALTED WATER: Skip the plain water—soak your black beans in a bowl of salted water (about 1 tsp salt per quart) overnight. This prevents the curry from tasting bland later and speeds up cooking by 30 minutes. (I learned this the hard way after a watery, flavorless batch.)
- LOW AND SLOW FOR BEANS: After adding the soaked beans to your curry, drop the heat to a bare simmer. Too much boiling toughens them, and you’ll end up with a mushy, sad pile. A gentle roll every 10 minutes keeps them intact—no extra work, just patience.
- SAUTE ONIONS UNTIL CARAMELIZED: Don’t rush the onions—cook them low and slow until they’re deep golden, almost jammy. This adds sweetness that cuts through the richness of the chuck roast and balances the acidity of the tomatoes. (I was skeptical until I tried it.)
Troubleshooting perfect results
Curry Too Thin?
If your curry looks more like a sauce than a hearty stew, it’s likely because the liquid hasn’t reduced enough. After adding the beans, simmer uncovered for an extra 10-15 minutes—this lets the moisture evaporate naturally.
For a quicker fix, mix 1 tablespoon cornstarch with 2 tablespoons cold water, stir into the curry, and simmer for 2-3 minutes until thickened. 💫
Beans Staying Hard?
Undercooked beans are usually the culprit. If they’re still firm after 50 minutes, add ½ cup extra broth or water, cover, and simmer for another 20-30 minutes.
For faster results, use pre-cooked canned beans (drained and rinsed) and reduce simmering time to 20-25 minutes. Pro tip: Salt the beans later—adding salt early can toughen them.
Meat Too Tough?
Overcooking is the enemy of tender beef. If your chuck roast turns out chewy, pull it out earlier—it continues cooking off the heat. Aim for medium-rare (145°F internal temp) before adding it to the curry.
For extra tenderness, braise the beef separately for 1.5 hours before adding to the curry sauce, then shred it in.
Spices Too Overpowering?
If the spices dominate instead of blending, balance with acid—add 1 extra tablespoon lemon juice or a splash of tomato paste. For a smoother profile, toast your spices in a dry pan for 30 seconds before adding to the curry.
Start with half the recommended amounts if you’re new to bold spices like garam masala.
Sauce Too Bland?
A lackluster flavor often means the spices didn’t bloom properly. Toast the spices in oil for 30 seconds before adding wet ingredients to wake up their aromas. Deglaze the pot aggressively with beef broth to scrape up browned bits.
For depth, stir in 1 teaspoon fish sauce or ½ teaspoon smoked paprika at the end.
Curry Tastes Raw?
This usually means the spices didn’t infuse long enough. Simmer uncovered for at least 30 minutes after adding the beans—this lets flavors meld. If it’s still underseasoned, finish with a pinch of sugar (to balance acidity) and extra salt (taste as you go).
For a restaurant touch, garnish with toasted cumin seeds right before serving. 🌶️
Nutrition facts
Frequently asked questions
Can I use ground beef instead of chuck roast?
Yes, but you'll need to adjust the cooking time. Ground beef cooks much faster, so brown it first, then add it to the curry after the beans have simmered for 20-25 minutes instead of the full 45-50 minutes. For best results, use 80/20 ground beef (80% lean, 20% fat) to keep it flavorful. The texture will be different but still delicious!
What beans work best in this curry?
Dried black beans are ideal for their creamy texture, but you can swap in kidney beans, pinto beans, or even chickpeas. For faster prep, use canned beans (drained and rinsed) and reduce simmering time to 20-25 minutes. Just avoid beans with skins that stay tough, like Great Northern or navy beans—they won't soften enough in curry.
How do I make this curry in an Instant Pot?
Sauté the beef, onion, and garlic as directed, then add all spices and tomato paste. Pour in the tomatoes and broth, then cook on high pressure for 15 minutes (for dried beans) or 8 minutes (for canned beans). Quick-release the pressure, stir in garam masala and lemon juice, then let it sit for 10 minutes before serving. The Instant Pot version finishes in under 40 minutes!
Can I make this curry vegetarian?
Swap the beef for 1.5 cups crumbled firm tofu (pressed and pan-fried) or 1.5 cups chickpeas (drained and rinsed). For extra protein, add 1 cup lentils along with the beans. Keep all other ingredients the same—the spices and tomato base will still create that rich, satisfying flavor. The texture will be heartier and more plant-based.
How long will leftovers keep?
Store in an airtight container in the fridge for up to 5 days, or freeze for 3 months in portion-sized containers. The flavors actually improve after 24 hours as the spices meld further. Reheat gently on the stove with a splash of water or broth to restore moisture. For best texture, avoid microwaving—opt for stovetop reheating instead.
