Main Courses
This bean curd curry recipe transforms simple tofu into a restaurant-worthy dish with rich, spiced coconut gravy that clings to every silky bite. The secret lies in properly tempering whole spices—blooming them in hot oil unlocks their aromatic depth before they meet the creamy coconut base.
I’ve perfected this technique over years of testing, ensuring the tofu stays tender while absorbing the complex flavors without falling apart.
What sets this curry apart is the balance of textures and heat: crispy shallots add depth, while fresh cilantro brightens the finish, and a touch of tamarind keeps the sauce from becoming overly sweet.
The sauce simmers just long enough to develop a velvety consistency that coats the tofu perfectly, with no separation or greasiness. This is the kind of dish that feels indulgent yet remains light enough for a weeknight dinner.
The result is a curry that’s rich, aromatic, and deeply satisfying—ideal for serving over steamed basmati rice or with warm naan. The tofu absorbs the spiced coconut gravy beautifully, creating a dish that’s both hearty and elegant.
Whether you’re a seasoned home cook or new to curries, this recipe delivers professional-quality results with minimal fuss.
Pair it with cooling raita or pickled vegetables to balance the heat, or serve as-is for a complete, plant-based meal. The technique is straightforward, but the flavor payoff is extraordinary—proof that simple ingredients can create something truly special.
Ingredients for bean curd curry
Simple ingredients that transform into a restaurant-worthy bean curd curry with velvety coconut gravy.
| Ingredient | Amount | Notes |
|---|---|---|
| Extra-Firm Tofu 🍠 | 14 oz | Pressed and cubed evenly |
| Coconut Milk 🥥 | 1 can | Full-fat, unsweetened |
| Yellow Onion 🧅 | 1 whole | Finely chopped |
| Shallots 🧅 | 4 whole | Thinly sliced for crispiness |
| Fresh Ginger 🌿 | ½ inch | OR 1 tbsp grated |
| Garlic Cloves 🧄 | 6 cloves | Minced finely |
| Coconut Oil 🫒 | 2 tbsp | For blooming spices |
| Ground Cumin 🌿 | 1 tsp | Toasted for depth |
| Ground Coriander 🌿 | 1 tsp | Freshly ground preferred |
| Turmeric Powder 🌶️ | ½ tsp | For vibrant color |
| Cayenne Pepper 🔥 | ¼ tsp | Adjust for heat |
| Fresh Cilantro 🌿 | ¼ cup | Chopped for garnish |
| Tamarind Paste 🍯 | 1 tbsp | Balances sweetness |
| Lemon Juice 🍋 | 1 tbsp | Freshly squeezed |
| Sea Salt 🧂 | 1 tsp | Diamond Crystal preferred |
The tofu is the foundation—opt for extra-firm and press it for at least 20 minutes before cubing. This removes excess water so the tofu absorbs the sauce beautifully without turning mushy. For pressing, wrap the block in a clean kitchen towel, place a heavy pan on top, and let it drain. Trader Joe's and Whole Foods carry excellent quality tofu, but any organic brand will work. The shallots deserve special attention: slice them paper-thin for maximum crispiness when fried later—this adds a delightful textural contrast to the silky tofu.
No fresh ginger? Substitute with 1 tbsp grated ginger powder, but fresh is ideal for that bright, zesty kick. The tamarind paste can be tricky to find—look for it in the international aisle or at an Asian market. If you can't find it, a mix of 1 tsp lime juice + 1 tsp brown sugar works in a pinch. For the coconut milk, full-fat is non-negotiable—it creates that luxurious, velvety texture. The tamarind balances the richness, so don't skip it. And if you're sensitive to heat, reduce the cayenne to 1/4 tsp or swap it for 1/2 tsp smoked paprika.
The spices bloom in the coconut oil for 2 minutes before adding any moisture—this step is critical for developing their full flavor. Store the dry spice blend (cumin, coriander, turmeric) in an airtight container for up to 6 months, but the fresh ginger and garlic should be used within 1 week for optimal flavor. The finished curry keeps well in the fridge for 4 days and freezes beautifully for 3 months. For meal prep, portion it into single-serving containers—just reheat with a splash of water or coconut milk to restore creaminess.
Why You'll Love This Recipe
- Tofu Gets the Spotlight: Honestly, I press the tofu in advance—no fancy steps, just a paper towel sandwich for 15 minutes. That crispy exterior? It soaks up the coconut milk like a dream, giving you that perfect bite every time.
- Creamy Without the Guilt: The coconut milk here isn’t just a base—it’s the star. Sauté the onions and shallots until they’re golden, then let that ginger hit the pan. The curry becomes rich but never heavy, and the tofu stays tender without falling apart.
- Leftover Hero: Between us, this curry tastes better the next day. I make a double batch on Sundays, and by Wednesday, it’s still the go-to for quick lunches. Just reheat with a splash of water—no sad, rubbery tofu here.
- Budget-Friendly Powerhouse: Extra-firm tofu and coconut milk stretch farther than you’d think. I swap in whatever veggies I have (spinach, bell peppers, even frozen peas) and still end up with a meal that feels special. My wallet and my freezer both thank me.
Step-by-step instructions for silky tofu in spiced coconut gravy
This method delivers rich, aromatic flavors with perfectly textured tofu every time.
Prepare and Press the Tofu
Begin by draining the 14 oz extra-firm tofu and wrapping it tightly in a clean kitchen towel or paper towels. Place a heavy object like a cast-iron skillet on top and let it press for at least 20 minutes. This removes excess water and ensures the tofu absorbs the flavors without becoming soggy.
After pressing, cut the tofu into 1-inch cubes. I like to use a sharp chef's knife for clean edges, and I work quickly to prevent the tofu from absorbing moisture from the air. The cubes should be uniform in size to ensure even cooking throughout the curry.
Bloom the Spices in Coconut Oil
Heat the 2 tbsp coconut oil in a large skillet over medium heat until shimmering but not smoking. Add the 1 whole yellow onion and cook for 5 minutes until softened and translucent. This step develops the onion's natural sweetness and prepares it to absorb the spices.
Add the 4 whole shallots, 0.5 inch fresh ginger, and 6 cloves garlic cloves. Cook for an additional 3 minutes until the shallots are golden and the garlic is fragrant. Immediately add the 1 tsp ground cumin, 1 tsp ground coriander, 0.5 tsp turmeric powder, and 0.25 tsp cayenne pepper. Stir constantly for 30 seconds until the spices bloom and release their aromatic oils.
Build the Coconut Base
Pour in the 1 can coconut milk and stir to combine with the spiced aromatics. Bring the mixture to a gentle simmer over medium heat, then reduce the heat to low. Let it cook uncovered for 10 minutes to allow the flavors to meld and the coconut milk to slightly thicken. You'll notice the mixture develop a rich, golden hue from the turmeric and spices.
Add the 1 tbsp tamarind paste and 1 tbsp lemon juice, stirring until fully dissolved. These ingredients balance the richness of the coconut milk with a touch of tangy sweetness. Taste and adjust the seasoning with the 1 tsp sea salt, adding more if needed. The sauce should be flavorful but not overly salty.
Cook the Tofu Until Silky
Gently add the pressed tofu cubes to the simmering coconut mixture. Spoon the sauce over the tofu to ensure even coating. Simmer for 10-12 minutes, stirring occasionally, until the tofu is heated through and the sauce has thickened slightly. The tofu should be tender but still hold its shape, absorbing the rich coconut gravy.
Here's the thing—don't overcook the tofu. You want it to be silky and absorb the flavors without falling apart. The sauce should coat the tofu like a velvety blanket, with a glossy sheen that indicates it's reached the perfect consistency.
Finish and Garnish
Remove the curry from heat and let it rest for 5 minutes. This allows the flavors to settle and the sauce to thicken slightly. Stir in the 0.25 cup chopped fresh cilantro just before serving to add a bright, herbal note that cuts through the richness of the coconut.
Serve the curry immediately over steamed jasmine rice or with warm naan bread. Each bite should deliver a harmonious blend of spiced coconut, tender tofu, and the bright finish of tamarind and lemon. The dish should be aromatic, flavorful, and perfectly balanced in every spoonful.
Pro Tips For Making Bean Curd Curry
- PRESS THE TOFU DRY: I learned this the hard way—wet tofu steams instead of searing. After draining, wrap it in a clean towel, place a heavy pan on top for 5 minutes, then press. The result? Crispy edges that hold up in the curry, not soggy cubes.
- SAUTÉ ONIONS LOW AND SLOW: High heat caramelizes onions too fast, burning before they soften. Use medium-low heat for 8-10 minutes until translucent but still slightly chewy—this builds flavor without bitterness. (Yes, even if you’re impatient like me.)
- SKIP THE COCONUT MILK BOIL: Boiling coconut milk curdles it into a grainy mess. Instead, heat it gently until just simmering (tiny bubbles at the edges), then stir in your spices. The creaminess stays smooth, and you avoid that dreaded separation.
- CHOP GINGER SMALLER THAN YOU THINK: Thick ginger slices sit like rocks in curry. Pulse it in a food processor for 2-3 seconds until it’s pea-sized—this releases flavor evenly without turning the dish into a ginger soup. (Your future self will thank you.)
Perfect pairings for this bean curd curry
Perfect Rice Pairings
Steamed jasmine rice is my go-to base for this curry—its delicate floral aroma complements the coconut without overpowering it. Cook 1 cup jasmine rice with 1.5 cups water and ½ tsp salt for perfectly fluffy grains.
For extra richness, rinse the rice first to remove excess starch, which prevents gumminess. 🌾
For a heartier option, try brown basmati rice—it adds nutty depth and pairs beautifully with the curry’s spiced coconut notes. Cook it in a 1:2 rice-to-water ratio and simmer for 40 minutes (uncovered) for optimal texture. The longer cooking time enhances its natural sweetness, balancing the tamarind’s tang.
Crispy Naan or Roti
Warm, pillowy naan bread is a must for scooping up every last bite of the curry. I love using store-bought naan from the Indian aisle (like Tasty Bite or Patel Brothers) for convenience, but homemade is worth the effort.
Brush the naan with garlic butter (melted butter + minced garlic) before serving to add another layer of flavor.
For a gluten-free twist, swap naan for roti—whole wheat or all-purpose flour works well. Cook it on a dry skillet until golden brown and crisp at the edges. The slight chewiness contrasts perfectly with the silky tofu and creamy sauce.
Cool Yogurt Raita
A dollop of cooling mint raita cuts through the richness of the curry like a breeze. Mix ½ cup plain Greek yogurt with 1 tbsp chopped mint, ½ tsp cumin seeds, and a pinch of salt.
The yogurt’s tanginess balances the coconut’s sweetness, while the mint adds a refreshing finish. For extra flavor, add 1 tsp grated cucumber or a squeeze of lemon.
For a spicy variation, stir in ½ tsp green chili paste or a pinch of cayenne to the raita. This adds a subtle kick that enhances the curry’s heat without overwhelming it. Serve the raita on the side or spoon it directly into the curry bowl for a cooling contrast.
Pickled Vegetables
Quick-pickled red onions or carrots add a bright, tangy crunch to the plate. Thinly slice ½ red onion and 1 carrot, then toss with ¼ cup rice vinegar, 1 tbsp sugar, and ½ tsp salt.
Let it sit for at least 30 minutes before serving. The acidity brightens the dish and cuts through the coconut’s richness.
For a more complex flavor, try mango pickles—their sweet-spicy profile pairs beautifully with the curry’s depth. Store-bought pickles (like Mango Pickle by Ganga) work in a pinch, but homemade versions with mustard seeds and fenugreek add an authentic touch.
Herbed Lentil Soup
For a complete, protein-packed meal, serve the curry alongside a yellow lentil soup. Cook 1 cup yellow lentils with 4 cups vegetable broth, 1 tsp cumin, and ½ tsp turmeric until tender.
Finish with fresh cilantro and lemon juice. The earthy lentils complement the tofu’s silky texture while adding a hearty element to the plate.
This pairing is especially satisfying for a cold evening—the lentils’ warmth contrasts with the curry’s creamy sauce, creating a balanced, comforting bowl. Plus, the lentils add fiber and plant-based protein, making the meal even more nourishing.
Nutrition facts
Frequently asked questions
Can I use regular tofu instead of extra-firm for this bean curd curry?
Regular or firm tofu won't hold up as well in the sauce and may turn mushy. For best results, stick with extra-firm tofu—it maintains its shape while absorbing the rich coconut gravy beautifully. If you only have firm tofu, press it for 30 minutes instead of 20 minutes to remove more moisture.
How do I adjust the spice level in this bean curd curry?
The recipe includes 0.25 tsp cayenne for mild heat. For medium heat, increase to 0.5 tsp or add ½ tsp red pepper flakes. For spicy, use 1 tsp cayenne or a 1-inch piece of fresh chili (remove seeds for less heat). Always taste before serving!
What's the best way to store leftover bean curd curry?
Store in an airtight container in the fridge for up to 4 days. For freezing, portion into single servings and freeze for 3 months. To reheat, add a splash of water or coconut milk to restore creaminess. Microwave for 1-2 minutes or gently reheat on the stovetop over low heat.
Can I make this curry without coconut milk?
Yes! For a dairy-free alternative, use cashew cream (blend 1 cup soaked cashews with ½ cup water) or full-fat Greek yogurt for tanginess. Reduce the liquid slightly since these bases are thicker. The tamarind and lemon will still balance the richness beautifully.
Why did my tofu turn rubbery in the curry?
Overcooking or skipping the pressing step causes rubbery tofu. Press the tofu for at least 20 minutes and simmer it for only 10-12 minutes in the sauce. Also, avoid high heat—keep the sauce at a gentle simmer to maintain tender tofu. The sauce should coat the tofu like "velvet," not cling like glue.
