
This fragrant vegan curry with tofu and cauliflower brings restaurant-quality Indian flavors right to your dinner table. The combination of aromatic spices, creamy coconut milk, and protein-packed tofu creates a satisfying meal that even dedicated meat-eaters will love.
I first made this curry during a rainy weekend when I craved something warming yet healthy. The combination of frozen-then-thawed tofu creates a remarkably meaty texture that absorbs all the incredible spice flavors. It's now my go-to recipe whenever I'm cooking for friends with dietary restrictions.
Ingredients
- Avocado oil or neutral oil: Provides a clean base for blooming the spices without adding competing flavors
- Cumin seeds and black mustard seeds: These whole spices release intense aromatic oils when heated that ground spices simply cannot match
- Fresh garlic and ginger: The foundation of any good curry, always use fresh for the brightest flavor
- Serrano peppers: Adjust based on your heat preference, remove seeds for milder heat
- Ground spices: Coriander, turmeric, paprika, cinnamon, and nutmeg create depth and complexity
- Curry leaves: These aromatic leaves add an authentic flavor that's impossible to substitute
- Full-fat coconut milk: Provides richness and creaminess essential for balancing the spices
- Extra-firm tofu: Previously frozen and defrosted for a meatier, more absorbent texture
- Cauliflower florets: Absorb the curry flavors while adding hearty texture and nutrients
- Fresh spinach and cilantro: Add brightness, color and fresh flavor at the end of cooking
Step-by-Step Instructions
- Bloom the spices:
- Heat oil in a large sauté pan over medium-high heat until shimmering. Add cumin and mustard seeds, cooking until they begin dancing and popping in the pan, about 45-60 seconds. This releases their essential oils and creates the foundational flavor for the entire dish.
- Create the aromatic base:
- Add minced garlic, ginger, and diced serrano peppers to the bloomed seeds, cooking for 90 seconds while stirring frequently. If using stainless steel, you may need to add a splash of water to prevent sticking. The mixture should become intensely fragrant.
- Add ground spices:
- Sprinkle in turmeric, coriander, paprika, cinnamon, nutmeg, and curry leaves, cooking for just 30 seconds until fragrant but not burnt. The spices will look dry but will bloom in the next step.
- Build the curry sauce:
- Pour in coconut milk, using it to deglaze the pan by scraping up those flavorful browned bits. Add tomato sauce and sugar, bringing to a rapid simmer. Let it reduce for 3 minutes, stirring occasionally as it starts to thicken and the flavors meld.
- Cook the cauliflower:
- Add cauliflower florets, salt, and pepper to the simmering sauce, spooning the curry over the florets to coat them completely. Cover and maintain a steady simmer for 12-13 minutes, stirring occasionally, until cauliflower is fork-tender but not mushy.
- Prepare the tofu:
- While the cauliflower cooks, bring a large pot of water to boil. Take your previously frozen and defrosted tofu and squeeze out excess water by hand. Slice into 3/4-inch cubes, then boil for 2 minutes in salted water. This parboiling step creates a springy texture that absorbs flavor beautifully.
- Finish the curry:
- When cauliflower is tender, stir in garam masala and spinach, cooking just until spinach wilts. Gently fold in the boiled tofu cubes, allowing them to absorb the flavors without breaking apart.
- Brighten and serve:
- Turn off heat and stir in fresh lemon juice and chopped cilantro. Taste and adjust salt as needed. Serve hot over rice or with flatbread of your choice.

The previously frozen tofu is my secret weapon in this recipe. After discovering this technique from a Chinese cooking blog, I never make tofu curry without it. The freezing process creates tiny ice crystals that puncture the tofu's cell walls, resulting in a more porous, meat-like texture that soaks up the curry sauce like a flavor sponge.
The Magic of Previously Frozen Tofu
Freezing transforms ordinary tofu into something extraordinary. When tofu freezes, the water inside expands, creating hundreds of tiny pockets throughout the block. Upon thawing, these pockets remain, allowing the tofu to absorb significantly more flavor than fresh tofu. The texture also becomes chewier and more substantial, giving it an almost meat-like quality that satisfies even the most dedicated carnivores. For best results, freeze the tofu in its original packaging for at least 24 hours, then defrost in the refrigerator overnight before using.
Spice Level Customization
This curry can be adjusted to suit any heat preference. For a family-friendly version, use just one seeded serrano pepper and mild paprika. For spice enthusiasts, keep the seeds in all three serranos and opt for hot paprika instead of sweet. The coconut milk helps balance the heat, but you can also serve yogurt on the side for those who prefer a milder experience. Remember that the spice level will intensify slightly as leftovers sit, so consider going a touch milder if you plan to enjoy this curry over several days.
Make-Ahead and Storage Tips
This curry actually improves with time as the flavors meld together. You can prepare it up to three days ahead and store it in an airtight container in the refrigerator. Just keep the rice or bread separate to prevent them from absorbing all the delicious sauce. For freezing, cool the curry completely before transferring to freezer-safe containers. It will maintain quality for up to three months. When reheating, add a splash of water or coconut milk if the sauce has thickened too much, and finish with fresh cilantro and a squeeze of lemon for brightness.

Serve this dish with rice or naan for a complete meal, and enjoy the wealth of flavors in every bite!
Frequently Asked Questions
- → How can I make this curry spicier?
Increase the number of serrano peppers or use spicier varieties like Thai chilies. You can also add more paprika or a pinch of cayenne pepper.
- → Can I substitute tofu with another protein?
Yes, chickpeas or tempeh work great as substitutes. You can also use roasted vegetables for a hearty alternative.
- → What type of flatbread pairs well with this dish?
Flatbreads like naan, roti, or even pita work wonderfully to scoop up the curry.
- → How do I store leftovers?
Store the curry and rice separately in airtight containers in the fridge for up to 3 days. Reheat gently on the stove or in a microwave, adding a splash of water if needed.
- → Can I make this dish ahead of time?
Yes, the curry tastes even better the next day as the flavors meld. Prepare it ahead, but add the spinach and lemon juice right before serving.
- → What can I use instead of curry leaves?
Although curry leaves impart a unique flavor, you can substitute with a small piece of bay leaf or skip it altogether.
- → Is there a way to make it lower in fat?
Use light coconut milk instead of full-fat and reduce the amount of cooking oil to lighten the dish.