There is a very specific craving that hits around 6 p.m. in our house: something spoonable over rice, something with the warm spice smell that makes everyone wander into the kitchen without being called. When I still ate dairy, that craving often meant a paneer curry. These days we reach for a block of extra-firm tofu instead, and honestly, when the gravy is right, nobody is doing a side-by-side with the dairy version.
This vegan paneer curry is my weeknight answer: pressed tofu cubes in a silky onion-tomato base with cashews for body, a little sweetness to balance the tang, and kasuri methi at the end so the bowl still feels like a restaurant treat. My biggest lesson from early tests was patience with the onion paste. Rushing that step gave me thin, sharp gravy. Cooking it down until the oil separates is what makes the sauce taste deep instead of “fast tomato soup.”
If you are ready to try it, grab your heaviest pan and let’s make it together.
What “Vegan Paneer” Usually Means
Paneer is fresh Indian cottage cheese. It stays firm in a simmer and soaks up gravy in a way that is hard to copy exactly with plants. On blogs and menus, “vegan paneer” almost always means one of two things: a store-bought soy or nut-based paneer-style product, or extra-firm tofu treated like a sponge for flavor.
I wrote this recipe for tofu because it is easy to find, affordable, and holds its shape when you press it well. If you already buy a vegan paneer you love, you can swap it in by weight and skip the pressing step.
Why Tofu Works in This Style of Curry
- Protein: Firm tofu brings satisfying protein to a plant-based plate without a long marinade list.
- Texture trick: Pressing and a quick pan sear give edges that mimic the slight chew of browned paneer.
- Gravy partner: Tofu does not fight the tomato-cashew base the way some vegetables release extra water mid-simmer.
This is home cooking, not a medical claim. If you avoid soy, this exact formula is not for you, but the gravy base works with seared mushrooms or cauliflower florets with a shorter simmer time.
Why You’ll Love This Recipe
- Restaurant-style payoff without a mile-long ingredient list
- Meal-prep friendly: Gravy tastes even better the next day after the spices meld
- Naturally dairy-free and vegan for mixed-diet tables
- Flexible heat: Kashmiri chili gives color with mild spice; you can add cayenne if your household likes fire
- One main pan plus a blender (stick blender works too)
Ingredients

For the tofu:
- 400–450 g extra-firm tofu (one standard block)
- 1 tbsp neutral oil (for searing)
- Pinch of salt
For the gravy base:
- 2 tbsp neutral oil (divided if needed)
- 2 medium onions (roughly 300 g), roughly chopped
- 1 inch ginger, peeled and chopped
- 4 large garlic cloves, chopped
- 3 medium ripe tomatoes (roughly 350–400 g), chopped, or 1 cup canned crushed tomatoes
- 12–15 raw cashews, soaked in hot water for 15 minutes (or 2 tbsp cashew butter in a pinch)
Spices and seasoning:
- 1 tsp coriander powder
- ½ tsp turmeric powder
- ½ to 1 tsp Kashmiri red chili powder (start low)
- ½ tsp garam masala, plus extra to finish
- Salt, to taste through the cook
- ½ to 1 tsp sugar or maple syrup (balances tomato tang)
- ¼ cup plain unsweetened plant-based yogurt or thick coconut cream (optional, for subtle tang and creaminess)
- ½ tsp kasuri methi (dried fenugreek leaves), crushed between palms
- 2 tbsp chopped cilantro, for garnish

How to Make Vegan Paneer Curry
Prep the tofu
- Drain the tofu and wrap it in a clean kitchen towel or paper towels. Place a cutting board and something heavy (a cast-iron skillet or a few cans) on top. Press for at least 20 minutes, 30 if you have time. Change the towel once if it becomes soaked.
- Cut into cubes about the size you would cut paneer for curry, roughly 2 cm. Pat very dry again.
- Warm 1 tbsp oil in a wide nonstick or well-seasoned pan over medium-high heat. Arrange tofu in a single layer with a little space. Cook undisturbed for 2–3 minutes until golden, flip, repeat. You are not trying to cook it through, just build a skin. Sprinkle a tiny pinch of salt. Set aside on a plate.
Tip from experience: If the tofu sticks, your pan was not hot enough or the cubes were still wet. Dry tofu + patient contact time fixes most sticking drama.
Build the gravy
- In the same pan, add 2 tbsp oil over medium heat. Add onions with a pinch of salt and cook until soft and lightly golden, 8–10 minutes, stirring often.
- Add ginger and garlic. Cook until the raw smell fades, about 1–2 minutes.
- Add tomatoes and cook until they break down and the mixture looks jammy, 6–10 minutes depending on ripeness. If sticking, splash a tablespoon of water and scrape the fond back in.
- Cool slightly if your blender is fussy about heat, then blend with drained cashews (or cashew butter + a splash of water) until very smooth. You can use a stick blender directly in the pan if it is deep enough.
- Return the puree to the pan over medium heat. Add coriander, turmeric, Kashmiri chili, and ¼ tsp salt. Cook, stirring, until the paste thickens and you see a thin shimmer of oil at the edges. This step matters: undercooked onion-tomato paste tastes sharp.
Simmer and finish
- Add 1 to 1½ cups water, starting with less; you can always thin later. Bring to a gentle simmer.
- Stir in optional yogurt or coconut cream. Add the seared tofu cubes. Cover partially and simmer 8–12 minutes so the tofu takes on flavor. Stir once or twice gently so cubes do not break.
- Taste. Adjust salt, sugar, and chili. Finish with garam masala and crushed kasuri methi. If the gravy is too thick, add hot water in small splashes. If too thin, simmer uncovered a few minutes.
- Garnish with cilantro. Serve hot.
Tips for the Best Texture and Flavor
- Press longer on humid days. Extra moisture in the air seems to hide inside tofu blocks; 30 minutes of pressing is safer than 15.
- Kashmiri chili is for color first. If you want more heat, add a pinch of cayenne after you have seen the color from Kashmiri.
- Cashew swap: Blanched almonds or sunflower seed butter can work in a pinch; flavor shifts slightly, so bump lemon juice at the end if it tastes flat (just a few drops).
- Do not skip kasuri methi if you can find it. It is the “this tastes like takeout” note in many North Indian gravies.


Vegan Paneer Curry (Restaurant-Style Tofu in Tomato-Cashew Gravy)
Equipment
- Wide nonstick or well-seasoned skillet
- Blender or immersion blender
- Heavy object or tofu press (optional, for pressing)
Ingredients
For the tofu
- 400–450 g extra-firm tofu one standard block
- 1 tbsp neutral oil for searing
- Pinch of salt
For the gravy base
- 2 tbsp neutral oil divided if needed
- 2 medium onions about 300 g; roughly chopped
- 1 inch ginger peeled and chopped
- 4 large garlic cloves chopped
- 3 medium ripe tomatoes about 350–400 g; chopped, or 1 cup canned crushed tomatoes
- 12–15 raw cashews or 2 tbsp cashew butter; soaked in hot water 15 minutes
Spices and seasoning
- 1 tsp coriander powder
- ½ tsp turmeric powder
- ½ to 1 tsp Kashmiri red chili powder start low
- ½ tsp garam masala plus extra to finish
- Salt, to taste through the cook
- ½ to 1 tsp sugar or maple syrup balances tomato tang
- ¼ cup plain unsweetened plant-based yogurt or thick coconut cream optional
- ½ tsp kasuri methi dried fenugreek leaves; crushed between palms
- 2 tbsp chopped cilantro for garnish
- 1 to 1½ cups water for simmering; adjust consistency
Instructions
Prep the tofu
- Drain tofu; wrap in a clean towel and press under a board and weight 20–30 minutes. Pat dry. Cut into about 2 cm cubes.
- Heat 1 tbsp oil in the pan over medium-high. Sear tofu in a single layer until golden on two sides. Sprinkle a pinch of salt. Set aside.
Build the gravy
- In the same pan, heat remaining oil over medium. Cook onions with a pinch of salt until soft and lightly golden, 8–10 minutes.
- Add ginger and garlic; cook until fragrant, 1–2 minutes. Add tomatoes; cook until jammy, 6–10 minutes.
- Blend the mixture with soaked cashews (or cashew butter and a splash of water) until very smooth. Return puree to the pan.
- Add coriander, turmeric, Kashmiri chili, and ¼ tsp salt. Cook, stirring, until paste thickens and oil shimmers at the edges.
Simmer and finish
- Add 1 to 1½ cups water; bring to a gentle simmer. Stir in optional yogurt or coconut cream.
- Add seared tofu. Simmer partially covered 8–12 minutes. Adjust salt, sugar, and chili.
- Finish with garam masala and crushed kasuri methi. Thin with hot water or reduce if needed. Garnish with cilantro. Serve hot.
Notes
What to Serve With It
On a simple night, I spoon this over Instant Pot Jeera Rice and call dinner done.
If we are leaning into a fuller Gujarati-leaning thali vibe, I add a bowl of Mag Ni Chutti Dal or a generous side of Palak Dal for greens and iron on the same plate.
When I want crunch and no extra stove time, Cucumber Peanut Koshimbir is the cooling contrast this rich gravy wants.
When I pack lunch the next day, I roll methi thepla with a drier portion of curry so the bread does not turn soggy by noon.
FAQs
Q1. Can I use silken or soft tofu?
Not here. Soft tofu will fall apart in the simmer. Extra-firm is the right starting point. Super-firm tofu (if you can find it) needs less pressing.
Q2. Can I make this ahead?
Yes. The gravy deepens overnight. Store in an airtight container in the refrigerator for up to 3 days. Reheat gently; add a splash of water when loosening.
Q3. Can I freeze it?
You can freeze the gravy alone very well. Frozen-then-thawed tofu changes texture (more spongy). If meal prepping for the freezer, freeze gravy only and add freshly seared tofu when serving.
Q4. I am allergic to nuts. What can I use instead of cashews?
Use sunflower seed butter or soaked sunflower seeds blended with the tomatoes, or a few tablespoons of thick coconut cream for body. Taste and adjust salt because each swap carries different salinity.
Q5. How do I make it taste closer to butter paneer without butter?
A small spoon of vegan butter at the finish helps. You can also add a pinch of smoked paprika for depth, but go slowly so it does not read like barbecue.
Q6. Why does my gravy split when I add plant yogurt?
Usually temperature shock or very acidic yogurt. Temper by adding a little hot gravy into the yogurt, stir, then pour back in on low heat. Use thick, plain, unsweetened yogurt.
If you try this vegan paneer curry, tell me in the comments: are you team rice, team roti, or the kind of person who needs both on the same plate? I read every note, especially the ones that include what brand of tofu worked in your city.
Made this? Share a photo and tag @petitepaprika on Instagram. I love seeing your kitchen creations!
