Meet the newest addition to the rapidly growing recipe file I’m calling, “Indian food, Nisha-fied.”
You can think of this luxurious Indian Tofu Curry as a lower-lift, streamlined cousin of my tofu tikka masala. It draws inspiration from North Indian dishes featuring chicken marinated in spiced yogurt marinades but of course it’s 100% plant-based!
Here, torn tofu chunks soak up a divine marinade (toasted whole spices and sautéed aromatics blitzed with yogurt and creamy cashews ), then get a quick pan-fry to take on a gorgeously golden-brown crust.
The result? Creamy, melt-in-your-mouth tofu chunks in a luscious, warmly-spiced curry sauce. It’s an indulgent restaurant-quality meal that packs in 25g of protein per serving and lots of anti-inflammatory goodness.
Looking for more recipes in the “Nisha-fied Indian Dishes” file? Check out my Chickpea Curry, Creamy Cabbage Curry, Braised Indian Chickpea Stew, or one of my dals (Dal Palak, Dal Makhani, or Dal Tadka)!

In this post:
Ingredient notes
- Extra firm tofu: AKA the Goldilocks of tofu—firm enough to be pan-fried without falling apart, but still tender and creamy.
- Spices: For the best flavor, I recommend using whole spices, which offer a more complex result than pre-ground spices. The tofu marinade uses a blend of bay leaves, cinnamon sticks, cardamom seeds, cloves, coriander, and cumin that are toasted to further amplify their flavor. The result is a chorus of sweet, citrusy, floral, earthy notes that make the marinade unforgettable.
- Aromatics: It’s hard to go wrong with onions + garlic + ginger! Importantly, the onions aren’t just “sweated” for a few minutes—they spend 12 to 15 minutes in the pan to get properly browned. The extra time adds a major sweet-savory dimension to the final dish, so it’s worth it IMO.
- Raw cashews & yogurt: Marinating protein in a spiced yogurt is a hallmark technique of North Indian cooking (think: tandoori chicken, as well as plant-based alternatives like tofu tikka masala). Here, a combo of yogurt blitzed with soaked raw cashews creates a thick, creamy marinade that clings well to the tofu (the cornstarch in the marinade also helps with this!).
- Soy milk: The final step of this recipe leans on soy milk to transform the pan of golden-crusted marinated tofu into a thick, saucy curry. It’s magical—a quick simmer, and the dish essentially creates its own flavor-rich sauce.
Subs, Swaps, and Buying Tips
Want even more protein? Use super firm tofu instead of extra firm tofu, which would bump this dish up to 35g protein/serving. In full disclosure, the dish will be less creamy/melt-in-your-mouth.
Don’t have whole spices? I’ve included ground spice equivalents in the recipe card (and instructions for when to add them in the FAQs)!
Opt for a creamy plant milk. In our testing, a plain unsweetened soy milk works best. This is our go-to brand (9g protein/serving!). Feel free to use a different plant-based milk, but be sure it’s relatively creamy.


Step-by-step instructions

- Soak the tofu and cashews: Tear the tofu into ~1 ½” (3.5 to 4 cm) chunks.

- Dissolve 2 tablespoons of kosher salt into 4 cups (960 mL) boiling water, then pour over the tofu. Cover and soak for 10 minutes.

- Drain, then spread the tofu chunks on a large dish towel to dry.

- Cover the cashews in boiling water and soak as you prep everything else (at least 15 minutes).

- Toast the whole spices: To a large frying pan heated over medium heat, add the cinnamon stick, bay leaves, cloves, cardamom seeds, and coriander seeds. Stir frequently for 2 minutes.

- Add the cumin seeds and toast for 60 to 90 seconds until very fragrant. Transfer all spices to a bowl to cool.

- Sauté the aromatics: Heat 3 tablespoons of oil over medium heat, then add the onions and a pinch of salt. Sauté for 12 to 15 minutes, stirring occasionally, till deeply browned.

- Add the garlic and ginger, stirring frequently for 2 minutes. (If using ground spices, add them now, with a splash of water. Stir constantly for 20 to 30 seconds.) Remove from heat.

- Make the marinade: In a high-powered blender, combine ½ cup (120 mL) water, sautéed onion mixture, drained cashews, yogurt, cornstarch, turmeric, chili powder, salt and pepper, and the toasted spices (tear the bay leaves and break the cinnamon sticks into small pieces first).

- Blend until the mixture is smooth and thick, using a tamper blender and scraping down the sides as you go. Add a splash of water if needed to blend.

- Pour the blended marinade into a large bowl and add the tofu, tossing gently to coat well.

- Cover and refrigerate for at least 1 hour (or up to 24 hours).

- Cook the tofu: Heat a large nonstick frying pan over medium heat with 2 teaspoons of oil (spread out with a towel in a thin layer) for 2 minutes. Add half of the marinated tofu.

- Cook undisturbed for 5 minutes—do NOT flip early, as the tofu will stick! After the bottom of the tofu has developed a golden-brown crust, flip and cook for 4 more minutes.

- Transfer the cooked tofu to a plate, wipe out the pan, and repeat the process with a bit more teaspoons of oil and the remaining tofu. Keep an eye, as this batch may cook faster.

- Return the first batch of tofu to the frying pan. Add soy milk, dried fenugreek leaves, salt, and pepper.

- Simmer for 3 to 4 minutes, until thick and saucy.

- Remove from the heat, garnish with cilantro, and serve with flatbread or rice!
Tips for making this recipe
A high-powered blender makes this recipe a breeze
A high-powered blender is something of a cheat code in this recipe, as it effortlessly obliterates raw cashews and whole spices like nobody’s business.
The spices will crunch quite a bit as they blend, so if you want a smoother blending experience, grind the whole spices into a powder first using a spice grinder (or mortar and pestle).
How to make this without a high-powered blender
• Spices: If using whole spices, you’ll need to grind them first using an electric spice grinder, as your blender will not be able to blend them. If you don’t have a spice grinding tool, skip the whole spices and use the ground spices listed in the recipe card notes.
• Cashews: Let them soak overnight (or for as long as you can the day you’re cooking) to give them ample time to soften!
• Blend technique: Start by blending the water and soaked cashews together before adding any of the other marinade ingredients. Blend until as smooth as possible, then strain over a fine-mesh sieve to get rid of any unblended cashew bits. Then add the remaining marinade ingredients and blend.

Embrace a long marinade
The “one hour” listed in the recipe card is the minimum, but as with many recipes, a longer marinating time = more flavorful results.
I typically marinate my tofu overnight, as it works nicely with my schedule (…and I love falling asleep knowing my dinner for the next night is getting more flavorful by the hour), and you can marinate it for up to 24 hours.
Looking for a quicker option?
Skip toasting the whole spices and use the ground spices listed in the recipe card notes. Or, try this Vegan Curry with Tofu, which is designed to be a weeknight-friendly dinner (ready in 40 minutes).
Cook the tofu in a nonstick pan
Trust me—I’ve tested this recipe with stainless steel pans and cast iron pans, and the verdict is in: the tofu will stick unless you use a nonstick pan.
Tips for pan-frying the marinated tofu
• Preheat your nonstick pan properly! Add just a small amount of oil (2 teaspoons per batch) and spread it out with a towel. Let it heat up for 2 minutes over medium heat—the tofu should sizzle when it hits the pan.
• Resist the urge to flip the tofu early on in the cooking process, as it will stick to the pan. Once the bottom is golden brown, the tofu should lift away well enough for you to flip it without too much sticking.
• After cooking both sides, if you want more browning on all sides, flip the tofu again and cook for 2 to 3 more minutes.
• While you can cook the entire batch of tofu all at once, the pan will be very crowded and it won’t develop the gorgeous golden crust you see in the photos! Plus, you’ll only save ~8 minutes of cook time, so you’re not saving much time.


Frequently Asked Questions
Yes! We tested this recipe with just ground spices, and it’s still tasty!
Skip step 4 in the recipe card (toasting the spices). Check out note 2 in the recipe card for the ground spice equivalents, and add them after you sauté the garlic and ginger along with a splash of water. Stir constantly for 20 to 30 seconds, then remove the pan from the heat.
You can find a lot of the whole spices in well-stocked grocery stores, but some (like the Kashmiri chili powder, Indian bay leaves, and dried fenugreek leaves) you’ll want to seek out at your local South Asian grocery store, if you’ve got one!
If not, it’s a great excuse to check out my favorite online spice purveyor, Burlap & Barrel!
Unfortunately, we haven’t tested a substitute that works as well. I recommend trying my nut-free tofu tikka masala recipe instead!
Quick & delish → Scoop it up with warmed store-bought pita or Indian flatbread, or serve with rice.
For a veggie boost → Try serving with a shaved carrot salad seasoned with lime juice, a drizzle of agave, pinch of salt, and drizzle of oil. Or serve with any green salad or steamed veggie of choice, such as broccoli or green beans (or, honestly, any leftover cooked veggies you’ve got in the fridge).
Legendary → Make a batch of my vegan naan. 😍
Once cooled, store leftovers in an airtight container in the fridge for up to five days. When reheating, soften the consistency by adding a splash of soy milk (or other plant-based milk).
We haven’t tried freezing this dish—freezing changes the texture of tofu, so if you’re going to freeze this, expect the tofu to be spongier/chewier post-freeze.

If you fell hard for this creamy Indian Tofu Curry, please leave a rating and review below—it makes my day to hear from you!

Introducing
Big Vegan Flavor
Techniques and 150 recipes to master vegan cooking.
Indian Tofu Curry

Ingredients
- 2 (12 to 14 oz / 340 to 400g) blocks extra firm tofu, drained
- Diamond Crystal kosher salt (see Note 1)
Marinade
- ½ cup (70g) raw cashews
- 3 tablespoons (42g) neutral-flavored oil, plus more for cooking tofu
- 1 large yellow onion, diced (~ 2 cups / 300g diced onion)
- 5 cloves garlic, chopped
- 1 ½" piece (~ 15g) fresh ginger, peeled and finely chopped
- ¼ cup (60g) creamy, thick coconut yogurt (see Note 2)
- Freshly cracked black pepper
- 2 tablespoons (16g) cornstarch
- 1 teaspoon ground turmeric
- 2 to 3 teaspoons Kashmiri chili powder (mild Indian red chili powder, see Note 3)
Whole Spices (see Note 4 for ground spice substitutes)
- 1 cinnamon stick
- 2 Indian bay leaves (AKA tej patta) or regular bay leaves
- 3 whole cloves
- 6 green cardamom pods, seeds only (¼ to ½ tsp of seeds)
- 1 tablespoon coriander seeds
- 1 teaspoon cumin seeds
For Finishing
- 1 cup (240 mL) soy milk (or creamy plant milk of choice)
- 1 tablespoon dried fenugreek leaves AKA kasoori methi (see Note 5)
- 1 big handful cilantro leaves and tender stems
- Flatbread / pita or white rice to serve
Instructions
- Bring ~5 cups (1.2 L) of water to a boil.
- Soak the tofu: Use your hands to tear the tofu into chunks, roughly 1 ½” (3.5 to 4 cm) pieces, then add to a large bowl.In a large measuring cup or bowl, combine 4 cups (960 mL) boiling water and 2 tablespoons (19g) kosher salt (for sea salt or table salt, use 1 TBSP / 18g). Stir to dissolve, then pour the hot saltwater over the tofu.Cover and soak for 10 minutes, then gently drain. Spread the tofu out across a large dish towel and dry off while you continue prepping (save large bowl for step 7).
- Add the cashews to a small bowl and pour on boiling water to cover. Soak while you prep everything else (at least 15 min), then tip out the soaking water.
- Toast the whole spices (skip if using ground spices): Heat a large (12-inch) frying pan over medium heat until hot.Add the cinnamon stick, bay leaves, cloves, cardamom seeds, and coriander seeds. Stir frequently for 2 minutes, then add the cumin seeds. Toast for 60 to 90 seconds, or until very fragrant and the coriander & cumin have darkened by a few shades. Transfer to a bowl to cool.NOTE: If you don't have a very powerful blender (or just want a smoother blending process), you’ll need to grind the spices in an electric spice grinder (or mortar and pestle). Otherwise, they will be very hard to blend in the marinade.
- Cook the aromatics: Return the frying pan to medium heat and add 3 tablespoons (42g) of oil. Once shimmering, add the onions with a pinch of salt. Stir occasionally until deeply browned, 12 to 15 minutes (once they brown a bit, stir more frequently and a splash of water from time to time for even browning).Add in the garlic and ginger. Stir frequently for 90 seconds to 2 minutes, adding a splash of water if it sticks. Remove from the heat.NOTE: If using ground spices, add them to the pan now with a splash or two of water. Stir constantly for 20 to 30 seconds, then remove from the heat.
- Blend the marinade: Pour ½ cup (120 mL) water into a high-powered blender. Then add in the sautéed onion mixture, drained cashews, yogurt, 1 ½ teaspoons kosher salt (half for sea salt/table salt), 10 to 15 twists of black pepper, cornstarch, turmeric, and chili powder.Tear the bay leaves and cinnamon sticks into small pieces and add to the blender along with the other toasted whole spices.Start blending on low, then increase to high and blend until as smooth as possible. The whole spices will crunch, so use a blender tamper and scrape down the sides periodically. If there isn't enough water to blend, add a splash. The texture should be like a very thick smoothie. See Note 6 for blender stains.
- Gently pat dry the tofu with a clean towel so that it no longer feels wet. Pour the marinade into the large bowl, then add the tofu and use a silicone spatula to gently toss until tofu is well coated. Cover and refrigerate for at least 1 hour, or up to 24 hours for best flavor.
- Cook the tofu: Heat a large nonstick frying pan over medium heat with 2 teaspoons of oil, spreading out with a towel to a light layer. After 2 minutes, add HALF of the marinated tofu—it’s okay if some pieces stick together (see Note 7).Cook undisturbed for 5 minutes or until the bottom starts to develop a golden brown crust (resist the urge to toss early, as it will stick). Flip and cook for 4 minutes, or until most sides of the tofu are golden brown.Transfer tofu to a plate and wipe out the pan. Repeat with 2 teaspoons of oil and the remaining tofu (it may cook faster, 3 to 4 minutes on the first side and 2 to 3 minutes on the second side).
- Return the first batch of tofu to the frying pan. Pour in the soy milk, a pinch or two of salt, and a few twists of pepper. Crush the dried fenugreek leaves with your hands and add to the pan. Simmer for 3 to 4 minutes, or until saucy and thick. If you prefer a saucier consistency, add a bit more milk.
- Remove from the heat and garnish with cilantro. Season with salt to taste. Allow to cool for a few minutes, then serve with flatbread or rice.
Notes
- If using table salt or sea salt, use half the amount listed in this recipe.
- A creamy yogurt helps the marinade stay thick and stick to the tofu. We love Culina, Cocojune, Coconut Cult, and GT’s Cocoyo.
- If you only have spicy Indian chili powder or cayenne pepper, use ½ to 1 teaspoon (and add 2 teaspoons paprika for color, if desired).
- If you don’t have whole spices, combine the following ground spices in a small bowl: 2 tsp coriander, ¾ tsp cumin, ½ tsp cinnamon, ¼ tsp cardamom, and ⅛ tsp cloves. You’ll add these to the frying pan in step 5 after the garlic/ginger. The flavor won’t be as complex as it is with whole spices, but it’s still tasty!
- Kasoori methi brings a really unique, bold/savory flavor to North Indian-style dishes. You can find it at South Asian grocery stores or online.
- If your blender gets stained with the color of the spices (turmeric), wash it as soon as possible with grease-cutting soap—this should clear the stains. If they persist, leave your blender out in the sun for a few hours, and it will remove the stains.
- While you can use any large frying pan for toasting the spices and cooking the aromatics, you will need a nonstick pan for cooking the tofu. I’ve tried this with stainless steel, and unfortunately the tofu sticks a lot! If you’re in a rush, you can cook the tofu all at once, but it won’t develop the same type of golden brown crust.
Nutrition
Nutrition information is automatically calculated, so should only be used as an approximation.














