Soups & Stews
This beef and bean curry recipe delivers restaurant-quality depth with tender beef, hearty beans, and a fragrant coconut-tomato sauce that simmers to velvety perfection. The secret lies in slow-browning the beef and building layers of spice through toasted whole aromatics—no shortcuts, just rich, complex flavor. I’ve perfected this version after years of testing, balancing traditional techniques with modern convenience.
What sets this curry apart is the textural contrast: fork-tender beef, creamy coconut milk, and beans that hold their shape while absorbing the spiced tomato broth. The recipe accommodates both slow-cooked richness (ideal for weeknight simmers) and a quick-stovetop method for urgent cravings. Every bite delivers a harmony of smoky cumin, warm cinnamon, and bright lemon—with just enough heat to linger.
The result is a one-pot wonder that pairs beautifully with basmati rice or warm naan, but works just as well as a standalone meal. The sauce thickens naturally as it simmers, coating every ingredient in a glossy, aromatic layer. Serve with a crisp lager or mint tea to cleanse the palate between bites—this curry is designed to impress without requiring advanced skills.
Whether you’re feeding a crowd or meal-prepping for the week, this recipe scales effortlessly while maintaining its depth of flavor. The instructions are straightforward, but the reward is undeniably satisfying: a curry so rich and well-balanced, it’ll become your go-to weeknight staple. Let’s get cooking.
Ingredients for beef and bean curry
Fork-tender beef and hearty lentils simmered in aromatic coconut-tomato sauce—this curry delivers restaurant-quality depth with minimal effort.
| Ingredient | Amount | Notes |
|---|---|---|
| Chuck Roast Beef 🥩 | 1 ½ lb | Cut into 1-inch cubes, trimmed of fat |
| Black Beluga Lentils 🌾 | 1 ½ cups | Rinsed thoroughly, no soaking required |
| Coconut Milk 🥥 | 1 can | Full-fat, 13.5 oz can, shaken well |
| Crushed Tomatoes 🍅 | 1 can | 28 oz can, San Marzano preferred |
| Yellow Onion 🧅 | 1 whole | Medium size, finely diced |
| Garlic Cloves 🧄 | 6 cloves | Peeled, smashed lightly for aroma |
| Fresh Ginger 🌿 | ½ inch | Fixed: 0.5 inch piece, peeled and grated |
| Ground Cumin 🌶️ | 1 tbsp | Freshly toasted for deeper flavor |
| Ground Coriander 🌿 | 1 tbsp | Freshly ground preferred |
| Turmeric Powder 🧂 | ½ tsp | Bright yellow, high-quality |
| Cinnamon Stick 🌳 | 1 whole | For subtle sweetness, removed before serving |
| Bay Leaves 🌿 | 2 whole | Fresh preferred, dried works |
| Lemon Juice 🍋 | 2 tbsp | Freshly squeezed, bright flavor |
| Olive Oil 🫒 | 2 tbsp | Extra-virgin, for initial searing |
| Salt 🧂 | 1 ½ tsp | Diamond Crystal kosher salt |
The beef selection is critical here. Chuck roast delivers that melt-in-your-mouth texture when cooked low and slow, while sirloin or flank steak will stay tough. Most grocery stores carry pre-cubed chuck in the meat department—look for good marbling and ask the butcher to trim excess fat. For the lentils, Black Beluga holds its shape beautifully, but brown or green lentils work in a pinch. The coconut milk should be full-fat for authentic creaminess—Thai Kitchen or Native Forest brands are reliable. As for tomatoes, San Marzano crushed tomatoes provide that perfect balance of sweetness and acidity, but any quality canned tomatoes will suffice if you're short on time.
No fresh ginger? Ground ginger at half the amount works in a bind, though it lacks the bright zing of fresh. Substituting the cinnamon stick for 1/4 tsp ground cinnamon maintains the warmth without the texture. For the tomatoes, if you've got whole San Marzano tomatoes, roast them first for concentrated flavor. The bay leaves can be fresh or dried—just remember to remove them before serving. Lemon juice is non-negotiable for that bright finish; bottled lemon juice works if you're in a hurry, but fresh is always better. And if you're feeling adventurous, swap half the coconut milk for cashew cream for an extra-rich texture.
This curry develops better with time—plan for at least 4 hours of simmering for maximum flavor, though the quick version takes about 90 minutes. Store leftovers in an airtight container in the fridge for up to 5 days, or freeze for 3 months. The sauce actually improves overnight as the flavors meld. For meal prep, portion into containers with a side of rice—just reheat with a splash of water or coconut milk to restore creaminess. The lentils will soften further upon reheating, so they're perfect for cold lunches too.
Why You'll Love This Recipe
- One-Pot Magic: I swear by this recipe because it’s actually one-pan—just chop the onion, dump everything in, and walk away. No fancy techniques, no last-minute scrambling for extra bowls.
- Deep, Rich Layers: That chuck roast gets insanely tender, while the black beluga lentils soak up the coconut milk like a sponge. The crushed tomatoes add just enough tang to cut through the richness—it’s the kind of balance that makes you go back for seconds.
- Meal Prep MVP: Between us, this curry tastes better the next day. I make a double batch on Sundays, freeze half, and pull it out for lazy nights or unexpected guests. The lentils hold up perfectly, and the beef stays juicy—no sad, dry leftovers here.
- Budget-Friendly Feast: Chuck roast is cheap, lentils are a protein powerhouse, and coconut milk stretches for miles. Honestly? This feeds four for under $15, and I’ve never once regretted the math. Plus, the leftovers turn into quick lunches or a last-minute dinner fix.
Step-by-step instructions for spiced tomato and coconut curry
This method delivers a rich, aromatic curry where tender beef and hearty lentils meld perfectly with coconut and tomato.
Sear the Beef for Deep Flavor
Heat the 2 tablespoons olive oil in a heavy-bottomed pot over medium-high heat. Add the 1.5 lb chuck roast beef cut into 1-inch cubes, working in batches if needed to avoid crowding. Sear for 4-5 minutes per batch until deeply browned on all sides—this develops the Maillard reaction that builds flavor. Remove the beef and set aside temporarily.
Here's the thing—don't skip this searing step. The caramelized crust on the beef becomes the foundation of your curry's depth. If you notice the oil smoking excessively, reduce heat slightly to maintain control without losing that golden sear.
Build the Aromatic Base
In the same pot, reduce heat to medium and add the 1 whole yellow onion and 6 cloves garlic cloves. Cook for 5-6 minutes until the onions soften and turn translucent, stirring occasionally. Add the 0.5 inch fresh ginger and cook for another 30 seconds until fragrant.
Now add the 1 tablespoon ground cumin, 1 tablespoon ground coriander, 0.5 teaspoon turmeric powder, 1 whole cinnamon stick, and 2 whole bay leaves. Stir constantly for 1 minute until the spices release their aromas and the oil becomes perfumed. This aromatic base forms the soul of your curry—don't rush it.
Simmer with Tomatoes and Lentils
Pour in the 1 can crushed tomatoes and stir to deglaze the pot, scraping up any browned bits from the bottom. Add the 1.5 cups black beluga lentils, 1.5 teaspoons salt, and enough water to cover everything by about 1 inch. Bring to a gentle boil, then reduce heat to low and simmer uncovered for 30 minutes, stirring occasionally.
During this time, the lentils will begin to soften and the tomatoes will break down into a rich sauce. You'll notice the mixture reduce slightly and develop a deeper color—this is when the flavors start to marry. If the mixture gets too thick, add 2-3 tablespoons water to maintain a loose consistency.
Finish with Coconut Milk and Brighten
After 30 minutes, stir in the 1 can coconut milk and the 2 tablespoons lemon juice. The curry should immediately become richer and more velvety. Return to a gentle simmer and cook for another 20-25 minutes until the lentils are tender (they should be soft but still hold their shape) and the beef is fork-tender.
Test the beef for doneness by piercing a piece with a fork—it should slide in easily with minimal resistance. The curry should have thickened slightly from the coconut milk, creating a luxurious texture. Taste and adjust seasoning if needed, adding more salt or lemon juice as required.
Rest and Serve with Confidence
Remove the cinnamon stick and bay leaves before serving. Let the curry rest for 5-10 minutes to allow the flavors to fully meld and the sauce to thicken slightly. This resting period is crucial—it lets the curry come together and develop its maximum depth of flavor.
Serve immediately over steamed basmati rice or with warm naan bread. Each spoonful should deliver a perfect balance of tender beef, hearty lentils, and the complex harmony of spices. The coconut milk adds richness while the lemon juice provides a bright contrast, making this curry both satisfying and balanced.
Pro Tips For Making Beef And Bean Curry
- SEAR THE BEEF FIRST: Chuck roast needs that crust to hold up through hours of simmering. Cut it into 1.5-inch chunks, pat dry, and sear in batches—don’t overcrowd the pan—until deep golden brown. I used to skip this, and the meat would turn out tender but flavorless. High heat for 3-4 minutes per side makes all the difference.
- SOAK THE LENTILS: Black beluga lentils cook fast, but soaking them for 20 minutes softens their skins and prevents a gritty texture. Drain well before adding to the curry—wet lentils dilute the sauce. (Yes, even if you’re impatient like me, this step keeps the dish from turning into a mushy mess.)
- SIMMER LOW AND COVERED: After browning the beef and onions, add the tomatoes and spices, then pour in the coconut milk. Reduce heat to a bare simmer, cover, and let it bubble gently—no boiling. I learned this the hard way when my curry split and turned greasy. Low heat keeps the lentils intact and the sauce rich.
- SALT THE COCONUT MILK: Canned coconut milk is often unsalted, and skipping this step leaves your curry tasting flat. Stir in ½ teaspoon of salt per can before adding it to the pot—it balances the sweetness and rounds out the flavors. (Your future self will notice the difference.)
Troubleshooting this dish
Sauce Too Thin?
If your curry looks watery after simmering, don’t panic—this is easily fixed. Reduce heat to low and simmer uncovered for an extra 10-15 minutes to let the liquid evaporate naturally. For a quicker fix, mix 1 tablespoon cornstarch with 2 tablespoons water, stir into the curry, and cook for 2-3 minutes until thickened. I’ve found that coconut milk-based curries often need this extra step to reach the perfect consistency. 🥄
Beef Still Tough?
Overcooking is the usual culprit, but don’t worry—there’s a simple solution. If your beef feels rubbery after simmering, add ½ cup water or beef broth and cover the pot with a lid. Return to a gentle simmer for another 15-20 minutes to finish tenderizing. For next time, aim for a 203°F internal temperature—this ensures perfect doneness without drying out. 🥩
Lentils Too Mushy?
Black Beluga lentils should hold their shape but soften slightly. If yours turn to mush, you likely overcooked them. To fix, stir in 1 tablespoon lemon juice and 1 teaspoon salt to brighten the flavor. For future batches, reduce simmering time to 15-20 minutes after adding lentils. I’ve learned that checking doneness with a fork (lentils should be tender but still firm) is key. 🌾
Spices Too Overpowering?
If your curry tastes like a spice bomb, balance it with 1 tablespoon honey or brown sugar to mellow the heat. A splash of coconut milk also helps dilute the intensity while adding creaminess. For prevention, start with ½ tsp of each spice and adjust to taste—this gives you room to build flavor gradually. 🌶️
Curry Tastes Bland?
A bland curry usually means the spices weren’t toasted enough or the sauce needs more acidity. Boost flavor by adding 1 tablespoon soy sauce or fish sauce for umami depth, or a splash of vinegar or more lemon juice for brightness. For next time, toast your spices in a dry pan for 30 seconds before adding them to the pot—this releases their full aroma. ✨
Leftovers Too Dry?
Reheating curry can make it dry, but a simple fix restores creaminess. Stir in 2-3 tablespoons coconut milk or water and heat gently over low heat for 5 minutes. If the texture is still off, mash a few lentils with a fork to thicken the sauce naturally. For best results, store leftovers in an airtight container with a thin layer of coconut milk on top to preserve moisture. 💫
Nutrition facts
Frequently asked questions
Can I substitute black beluga lentils with another type?
While black beluga lentils hold their shape beautifully, you can use brown or green lentils for a slightly softer texture. For a more rustic feel, try pinto or kidney beans—just increase cooking time by 10-15 minutes and add them later in the simmering process. The key is to avoid lentils that turn mushy, like red lentils.
How do I make this curry spicier?
Add ½ teaspoon cayenne pepper or 1 teaspoon chili flakes when toasting the spices, or stir in 1 tablespoon gochujang (Korean chili paste) with the coconut milk. For heat lovers, include 1-2 fresh chili peppers (like jalapeños or serranos) when searing the beef. Always taste as you go!
Can I make this curry in an Instant Pot?
Yes! Sauté the beef, onions, garlic, and spices as directed, then add all remaining ingredients. Cook on High Pressure for 20 minutes, then quick-release. Finish with lemon juice and let it sit for 5 minutes before serving. The Instant Pot version cooks 30% faster but requires less attention.
What if I don’t have fresh ginger?
Use ½ teaspoon ground ginger instead, but toast it lightly in a dry pan for 30 seconds to enhance flavor. For maximum impact, combine with ½ teaspoon lemon zest—it mimics fresh ginger's brightness. The curry will still taste great, just with slightly less complexity.
How long will leftovers keep in the fridge?
Store in an airtight container for up to 5 days. The flavors actually improve overnight as the spices meld further! For best texture, reheat gently on low heat with a splash of water or coconut milk. Freeze for up to 3 months—just thaw in the fridge before reheating.
