Bean Masala Recipe: Spiced Tomato-Coconut Sauce With Tender Beans

Main Courses

Bean Masala Recipe: Spiced Tomato-Coconut Sauce With Tender Beans

This bean masala recipe delivers restaurant-quality spiced tomato-coconut sauce with perfectly tender beans that melt in your mouth. The secret lies in slow-cooked beans infused with aromatic spices and a velvety coconut-tomato base that balances heat and richness.

I've perfected this technique over years of testing, ensuring every bite delivers authentic Indian flavors without compromising texture.

The foundation starts with beans—whether kidney, black, or chickpeas—that cook until fork-tender while absorbing the complex masala. Whole spices like cardamom and cloves temper in hot ghee, releasing their essential oils before blending into the sauce.

What sets this apart is the coconut milk, which adds a subtle creaminess that rounds out the acidity of tomatoes and the kick of green chilies.

By the time you serve it, you'll have a dish that's rich yet balanced—tender beans swimming in a sauce that's fragrant, slightly sweet, and just spicy enough to linger.

The aroma alone will have everyone at the table reaching for seconds. This recipe works beautifully with steamed basmati rice, warm roti, or even as a filling for wraps.

For those who love traditional Indian flavors but want modern flexibility, this recipe adapts easily. Swap in tofu or paneer for a vegetarian twist, or add a splash of lemon juice at the end for brightness. The key is patience—letting the flavors develop slowly creates depth that shortcuts can't match.

👨‍🍳
Difficulty
Hard
🌿
Diet
Vegetarian
🔥
Calories
Med Cal

Ingredients for bean masala

Pantry staples meet exotic spices for this rich, tender bean masala that tastes like a restaurant favorite.

Ingredient Amount Notes
Kidney Beans 🌱 1 ½ cups Dried, soaked overnight
Black Beans 🌱 1 cup Dried, soaked overnight
Chickpeas 🌱 1 cup Dried, soaked overnight
Canned Crushed Tomatoes 🍅 1 can (28 oz) San Marzano preferred
Coconut Milk 🥥 1 can (13.5 oz) Full-fat for creaminess
Green Chilies 🌶️ 2 whole Fresh, stems removed
Ghee 🧈 3 tbsp For spice tempering
Ground Cumin 🌿 1 tsp Toasted for depth
Ground Coriander 🌿 1 tsp Freshly ground preferred
Turmeric Powder 🌿 ½ tsp Bright yellow color
Garam Masala 🌶️ 1 tsp Store-bought blend works
Cardamom Pods 🌿 4 whole Lightly crushed
Cloves 🌿 2 whole Lightly crushed
Cinnamon Stick 🌿 1 piece 1-inch length
Fresh Ginger 🧄 1 inch Peeled, roughly chopped
Garlic Cloves 🧄 4 cloves Peeled, minced
Lemon Juice 🍋 1 tbsp Freshly squeezed
Salt 🧂 1 ½ tsp Adjust to taste

The beans are the star—kidney, black, and chickpeas all work, but soaking overnight is non-negotiable. Indian grocery stores have the best selection, but regular supermarkets carry dried beans too. Look for firm, unblemished beans—no shriveled or discolored ones. For shortcuts, canned beans work in a pinch, but they won't absorb the masala as well. The San Marzano canned tomatoes at Whole Foods or Trader Joe's make all the difference—they're sweeter and less acidic than store brands. Coconut milk should be full-fat for that velvety texture, and Thai Kitchen brand is my go-to for consistency.

No fresh green chilies? Dried red chilies rehydrated in hot water work, but they're less vibrant. Running short on whole spices? Ground garam masala plus a pinch of cayenne mimics the complexity. The ginger and garlic can be pre-minced from the freezer section—Trader Joe's sells pre-packaged jars that save time. For extra richness, add a splash of heavy cream at the end (though this isn't traditional). The lemon juice brightens everything up, so don't skip it—even if you're serving with yogurt, a little acidity balances the dish perfectly.

Beans keep for 3 days in the fridge once cooked, but the sauce gets even better after flavors meld for 24 hours. Portion into containers with a layer of coconut milk on top to preserve freshness. Freezes beautifully for up to 3 months, though the texture changes slightly. For meal prep, I double the batch—one pot for immediate serving, one pot to freeze. Reheat gently on low heat, adding a splash of water if it thickens too much. The aroma alone will have everyone reaching for seconds.

❤️

Why You'll Love This Recipe

  • Pantry in Minutes: I swear by this one—just dump the beans, tomatoes, and coconut milk into a pot, add spices, and let it simmer. No chopping, no soaking, no stress. The canned tomatoes and pre-cooked beans mean I’m done before the kettle even boils.
  • Rich Without Effort: That coconut milk? It turns this into something luxurious—creamy but not heavy, with a depth that makes it taste like you slaved over it. The beans soak up the masala like a sponge, giving every bite that just-right texture.
  • Leftover Goldmine: This dish actually improves the next day. The flavors meld better, and I’ve turned it into everything from tacos to curry bowls. Honestly, I make double portions just so I can enjoy it twice—once fresh, once reheated.
  • Budget-Friendly Feast: A single can of tomatoes and a handful of spices stretch to feed four for under $5. Between us, this is how I keep my grocery bill low while still serving something hearty and satisfying. (Yes, even on a Tuesday night.)

Step-by-step instructions for bean masala

Let's create a rich, spiced tomato-coconut sauce with perfectly tender beans that'll make your taste buds dance.

1

Prepare the Beans and Aromatics

Drain and rinse the soaked kidney beans, black beans, and chickpeas thoroughly. Place them in a large pot and cover with fresh water by about 2 inches. Bring to a boil over high heat, then immediately reduce to a gentle simmer. Cook for 20-25 minutes until the beans are tender but not mushy—you want them to hold their shape but be easily crushed between your fingers.

While the beans simmer, peel and finely chop the 1-inch fresh ginger. Peel and mince the 4 cloves garlic. Lightly crush the 4 cardamom pods, 2 whole cloves, and break the 1-inch cinnamon stick into small pieces. These aromatics will infuse the dish with complex, warming flavors. Set them aside for now—they'll be our secret weapon for depth.

2

Temper the Spices in Ghee

In a heavy-bottomed pot, melt the 3 tablespoons ghee over medium heat. Once it's shimmering but not smoking, add the ground cumin and ground coriander. Toast for 30 seconds until fragrant—you'll smell that earthy, toasty aroma that signals the spices are waking up.

Add the crushed cardamom pods, cloves, and cinnamon stick. Stir for 1 minute until the spices sizzle and release their oils. This step is crucial—it builds the flavor foundation. Immediately add the chopped ginger and garlic, cooking for 1-2 minutes until the raw garlic smell disappears and you're left with a sweet, nutty aroma. Be careful not to burn the spices; they should be golden, not dark brown.

3

Build the Tomato-Coconut Base

Pour in the 1 can (28 oz) crushed tomatoes and stir well to combine with the spiced ghee. Add the 0.5 teaspoon turmeric powder and 1.5 teaspoons salt, stirring until the turmeric dissolves completely. Bring the mixture to a gentle simmer over medium heat. Let it cook uncovered for 15 minutes, stirring occasionally, until the tomatoes break down and the mixture thickens slightly.

Here's where the magic happens: stir in the 1 can (13.5 oz) coconut milk. The sauce will lighten in color and become luxuriously creamy. Add the 2 whole green chilies, sliced lengthwise, and let them cook for 5 minutes to soften slightly. The chilies will add just the right amount of heat without overpowering the dish. Taste and adjust the salt if needed—this is your chance to balance the flavors before adding the beans.

4

Combine and Simmer to Perfection

Drain the cooked beans and add them to the tomato-coconut mixture. Stir gently to coat each bean in the rich sauce. Bring everything to a gentle simmer over low heat and let it cook uncovered for 10-12 minutes, stirring occasionally. The beans should absorb the sauce but remain tender—you're aiming for a creamy, velvety consistency where each bite delivers both bean and sauce.

In the last 2 minutes of cooking, stir in the 1 teaspoon garam masala and 1 tablespoon lemon juice. The garam masala adds that warm, aromatic finish, while the lemon brightens everything up. Taste again and adjust the salt if necessary. The sauce should be balanced—sweet from the tomatoes, creamy from the coconut, and just spicy enough to make your taste buds sing.

5

Rest and Serve

Remove the pot from heat and let the bean masala rest for 5 minutes. This resting period allows the flavors to meld completely and the sauce to thicken slightly. Skim off any excess oil that rises to the surface if you prefer a lighter texture.

Serve the bean masala hot, either as a standalone dish with crusty bread or over steamed basmati rice. The tender beans will hold their shape beautifully, coated in that luscious, spiced tomato-coconut sauce. Each spoonful delivers a perfect balance of textures and flavors—creamy, spicy, and just a little tangy from the lemon. Trust me, this is the kind of dish that tastes even better the next day!

👨‍🍳

Pro Tips For Making Bean Masala

  • SAUTÉ BEANS FIRST: Don’t just toss them in raw—give those kidney beans and chickpeas a quick 3-4 minute sizzle in hot oil before adding anything else. I learned this the hard way: skipping this step means your beans stay bland and mushy, no matter how much spice you throw in later. High heat. Seriously, crank it up until they’re lightly golden.
  • SOAK BEANS 30 MINS: If using dried beans, soak them for at least 30 minutes before cooking—even if you’re short on time. I used to skip this and end up with a watery, uneven texture. A quick rinse after soaking removes excess starch, which keeps your masala from turning gluey when the coconut milk comes in.
  • STIR IN TOMATOES LAST: Hold off on adding the crushed tomatoes until the very end of the spice cooking. I was skeptical until I tried it—adding them too early turns your masala into a watery soup. Wait until your onions and spices are deeply browned, then let the tomatoes simmer for just 5 minutes to meld without breaking down.
  • USE FULL-FAT COCONUT MILK: Light coconut milk will make your bean masala taste thin and lack richness. Splurge on the full-fat can—it’s the only way to get that creamy, velvety texture that balances the spice. Add it at the end and let it heat through gently; no boiling, or it’ll curdle like a science experiment gone wrong.

Best sauces and condiments for this recipe

Creamy Coconut Yogurt Drizzle

Finish your bean masala with a cooling coconut yogurt drizzle made by mixing ½ cup plain coconut yogurt with 1 teaspoon honey and a pinch of salt. The probiotics in yogurt balance the heat from the green chilies while adding a silky texture.

I drizzle it just before serving—it cools the palate beautifully and makes the dish feel restaurant-fancy. 🥥

Spicy Tamarind Chutney

For a tangy contrast, serve with a quick tamarind chutney that cuts through the richness. Combine ½ cup tamarind paste, 2 tablespoons sugar, 1 teaspoon cumin seeds, and ¼ cup water, then simmer for 5 minutes until thickened.

The sour-sweet balance elevates every bite. I like to serve it in a small bowl on the side for dipping. 🌶️

Crispy Onion Topping

Add crunch with crispy fried onions—sauté 1 cup thinly sliced red onions in 2 tablespoons ghee over medium-high heat for 8-10 minutes until golden brown.

Sprinkle them on top right before serving for a satisfying texture contrast. These add a sweet, caramelized depth that pairs perfectly with the creamy sauce. ✨

Fresh Cilantro Garnish

Brighten the dish with finely chopped cilantro—about ¼ cup—tossed with a pinch of salt and 1 teaspoon lemon juice. The herbaceous notes cleanse the palate between bites and add freshness.

I like to sprinkle it generously right before serving so it stays vibrant. The aroma alone makes the dish feel more vibrant. 🌿

Mint-Coriander Chutney

For a refreshing twist, blend ½ cup fresh mint leaves, ¼ cup cilantro, 1 green chili, 1 tablespoon lemon juice, and 1 teaspoon salt into a smooth paste.

Thin with 2 tablespoons water if needed. This chutney adds a cool, herby contrast that balances the richness of the coconut sauce perfectly. 💚

Pickled Onions

Quick-pickle ½ cup thinly sliced red onions in ½ cup vinegar, 1 teaspoon sugar, and ½ teaspoon salt for 15 minutes. The tangy crunch cuts through the creaminess and adds a bright, acidic pop.

These work as both a garnish and a topping for rice or roti. 🧅

Nutrition facts

Servings 4
Amount Per Serving
Calories 380kcal
% Daily Value *
Total Fat 18g23%
Saturated Fat 14g70%
Cholesterol 0mg0%
Sodium 520mg23%
Total Carbohydrate 52g18%
Dietary Fiber 16g57%
Sugars 12g
Protein 22g44%
* Percent Daily Values are based on a 2,000 calorie diet. Your daily values may be higher or lower depending on your calorie needs.

Frequently asked questions

1

Can I substitute canned beans for dried beans in this recipe?

Yes, but with adjustments! Use 2 (15 oz) cans of drained beans (kidney, black, or chickpeas) instead of dried. Since they're pre-cooked, reduce the simmering time to 10 minutes after adding them to the sauce. For best texture, rinse the canned beans thoroughly to remove excess sodium. The flavor will be slightly different but still delicious!

2

How do I adjust the spice level for kids or sensitive palates?

Remove the seeds from the green chilies before adding them, and reduce the quantity to 1 chili instead of 2. For extra mildness, strain the sauce before serving or serve the beans plain with a side of the mild sauce. Always taste as you go—you can adjust the heat at any point!

3

What's the best way to store bean masala for leftovers?

Store in an airtight container in the refrigerator for up to 3 days, or freeze for 3 months. For reheating, warm gently on low heat, adding 1-2 tablespoons water if the sauce thickens too much. The flavors actually improve after resting overnight—perfect for meal prep!

4

Can I make this recipe without coconut milk for a lighter version?

Replace the coconut milk with ½ cup plain yogurt or ¼ cup heavy cream for richness. For a dairy-free option, use ½ cup water or vegetable broth—just reduce the tomatoes by ¼ cup first to maintain balance. The dish will be lighter but still flavorful!

5

Why did my beans turn mushy instead of staying tender?

This usually happens from overcooking or using old beans. For dried beans, cook them just until tender (20-25 minutes max). If using canned, reduce simmering time to 5-10 minutes after adding to the sauce. Always use firm, unblemished beans—they hold up better during cooking.

★★★★★4.8(10 reviews)
Categories Main Courses