Making a great tofu curry is easy. Here we'll show you how to put this meal together in less than 30 minutes, and make the best everyday vegan curry recipe.
Our tofu curry is simple, healthy, tasty, family-friendly, nutritious, fulfilling, and everyone at the table will take seconds.
Check out our best tofu recipes collection!
What to expect
This tofu curry recipe is basically a vegan curry where we use tofu cubes instead of meat. This dish is inspired by the South Asian Cuisines of India and Nepal.
We use spices such as curry powder, turmeric, and black pepper to recreate those warm Indian flavors that make curries irresistible.
We toast the spices with garlic and ginger. This creates a flavor base that will infuse the curry with a subtle mouth-warming, yet fresh and zesty aroma.
Finally, we simmer the tofu and the spices in a rich sauce of coconut milk, canned tomatoes, and vegetable broth. This softens the flavors and creates a tofu curry that is rich, with a creamy texture, delicate to the palate. It's also vegan and gluten-free.
And by the way, you can make this recipe from scratch in less than 30 minutes, in one pot, without pressing the tofu (unless you really want to). Try the curry on basmati rice with some fresh cilantro and a squeeze of lemon on top. It's an easy, nutritious, and fulfilling family-friendly dinner.
Ingredients and Substitutions
- Tofu: use firm or extra firm tofu for this recipe. Softer types of tofu will fall apart in the curry as we let it simmer for about 20 minutes. Tofu is a great meat replacement with incredible health benefits and no scientifically proven downsides (unless you are allergic to it).
- Onion, garlic, ginger: finely chopped and gently fried in little olive oil they are the perfect flavor base. They are the cornerstone upon which any good curry is built and they will add a ton of flavor to your dish.
- Olive oil: we prefer to use extra virgin olive oil in our cooking. It has a high antioxidants level that makes it healthier than other oils when heated. However, you can replace olive oil with any other vegetable oil, including coconut oil.
If you are on an oil-free diet you can just fry the onion in the pan without oil, on low heat, stirring often. The natural oils of the onion will come out and prevent the onion from sticking.
- Spices: curry powder, cumin, and black pepper are essential to make the most basic curry. If you, like us, love spices, we recommend adding chili flakes, coriander powder, turmeric powder, and garam masala. We use all of them in our tofu curry and we recommend you do so too.
Fun fact: spices not only add a ton of flavor to the curry. They are also a concentration of antioxidants and are incredibly powerful in fighting inflammation, and can help prevent chronic disease.
- Vegetable broth: you can use store-bought vegetable stock or make it from scratch at home. We generally go for store-bought, especially if we want to make this vegan curry for a quick dinner. If you don't have vegetable broth you can also use just plain water, and add a little more salt.
- Tomatoes: we use canned crushed tomatoes. You can also use whole canned peeled tomatoes or very ripe fresh tomatoes, chopped up into small pieces.
- Coconut milk: we prefer full-fat coconut milk, but reduced-fat coconut milk works well too. Coconut milk makes the curry sauce creamy and round. It also adds a subtle coconut flavor that is great in curry. It balances out the spices, and combined with the tomatoes creates that deep orange color so typical of Indian curries.
It's hard to replace coconut milk in curry. You could use regular plant milk (like soy or oat) but it won't taste the same. The curry won't be as creamy without coconut milk.
Alternatively, you could blend a cup of soaked cashews or almonds with some water to get a smooth creamy liquid. You can add that to the curry instead of the coconut milk.
- Vegetables: we often use cauliflower or broccoli for our tofu curry. But many other veggies would be great in this dish. Try chopped zucchini, green beans, red bell pepper, sweet potatoes, spinach, carrots, and kale.
When you add veggies you need to consider that the tofu curry needs to simmer for about 20 minutes to get all flavourful and creamy. So if you're veggies cook faster than 20 minutes, you should take that into account. For instance, if you add spinach, they will only need 5 minutes. Zucchini will need about 10 minutes.
- Salt: a touch of salt helps bring all flavors together. We usually add 1 teaspoon, however, you can add less, then taste, and adjust just before serving. The best salts for cooking are sea salt and kosher salt, but you can use any type of salt.
Ingredients for serving
- Lemon: a wedge of lemon per portion. Squeeze on top of the curry just before eating. It adds a touch of freshness and acidity that will boost the flavor of his dish even more. You can replace lemon juice with lime juice.
- Cilantro: fresh cilantro is a perfect flavor match for this tofu curry. We even planted our own cilantro plant on our balcony to always have it at hand. Some people however really can't stand the flavor of cilantro and they think it tastes like soap. That's because of a genetic variation of their olfactory-receptor genes, which makes them taste aldehydes in cilantro, whose taste is apparently soapy. If you are one of those people and are repelled by cilantro you can simply use flat-leaf parsley instead.
- Rice: traditionally basmati rice is the rice of choice for curries. You can replace basmati rice with any other rice variety. Try whole-grain rice if you want to make this meal even healthier. If you are not into rice, you can replace it with flatbread or cauliflower rice.
To a pot add the oil and chopped onion. Gently sauté the onion for 3 minutes, then add grated garlic and grated ginger and fry gently for another minute.
To make the tofu curry more digestible, cut the garlic cloves lengthwise and remove the core of the garlic before finely chopping it.
Note: if you prefer to make the curry oil-free, you can just fry the onion in a dry pan, on low heat, moving it around often. The onion will release its natural oils, and you won't need to add any oil.
Now turn the heat to low, then add the spices: curry powder, cumin, red pepper flakes, coriander, turmeric powder, black pepper, and salt.
Tip: Adjust the heat by adding more or less red pepper flakes, based on your heat tolerance.
Toast the spices while stirring on low heat for a short minute.
Add vegetable stock, diced tofu, crushed tomatoes, coconut milk, your vegetable of choice (we use cauliflower florets here), turn to medium-high heat, and bring to a simmer.
Stir and let simmer for about 20 minutes, or till the vegetables are cooked, but are still a little "al dente". If the sauce splatters around, then turn the heat down to medium.
Note: If you add different vegetables, like for instance spinach or zucchini, they'll need to cook less. In this case, let the curry simmer without the veggies for the first 10 minutes, then add the vegetables.
A couple of minutes before turning the heat off, add the garam masala. Garam masala is optional, but we like to add it towards the end to bring out warmth, sweetness, and floral notes to our tofu curry.
Garam masala is widely used in India and will make your curry ever more authentic. It's added at the end to preserve its fragrance and aroma.
Serve the tofu curry on basmati rice or whole grain rice with a generous squeeze of lemon juice, freshly chopped cilantro (or flat-leaf parsley), and optionally a spoonful of unsweetened plant-based yogurt.
This curry is a great everyday easy dinner, and you can serve it in different ways:
- Serve with healthy grains and make an easy couscous side, just let it sit for 5 mins and your couscous is ready.
- Serve it with bread, such as this delicious Italian piadina or flatbread, it'd be a great way to sop out all the sauce leftovers!
- Increase your veggie intake, and serve the curry on cauliflower rice, it's a fresh and light-calorie side dish.
Want crispier tofu for your curry?
Try making our fried tofu and adding it on top of the curry just before serving it. Our recipe for fried tofu is easy. You can make it in less than 15 minutes, while the curry simmers.
Want chewier tofu, more similar to chicken?
We like tofu as is, without pressing it or freezing it. In fact, pressing and freezing tofu is a western practice not popular at all in Asian countries where tofu is widely used as a staple food.
If you prefer chewier tofu, then your best bet is to freeze it.
Frozen tofu is chewier because freezing changes the molecular structure of the tofu. As the water freezes and ice crystal forms, they create tiny wholes in the tofu. When melted, the ice crystals leave the tofu more porous, firmer, and chewier. So if you are into chewier tofu, try freezing it.
How do you use frozen tofu in curry?
To freeze tofu, take it out of its package, drain it, cut it into dice or slabs, and freeze it. To thaw, let it in the fridge overnight, or thaw in the microwave. Then pat dry excess water with paper towels and throw into the curry, as described in the recipe.
Is it worth it? to be honest, we never do it. It just takes too much thinking and prepping for us. But if you are curious you should definitely try.
Want an even creamier curry?
Let the curry simmer for longer than 20 minutes, and up to 30 or even more. Just make sure your veggies don't overcook. If you are planning to make a thicker and creamier tofu curry by letting simmer for longer, then add the vegetables a little later.
Tofu curry is the ultimate recipe to make ahead! It stores well in the fridge for up to 4 days and its flavor becomes better and better, as the spices and the curry sauce infuse the vegetables and the tofu with more flavor.
We usually make a big batch of this recipe and eat it several days after for a quick lunch or dinner.
Use different veggies
This tofu curry recipe works with most vegetables and we often change it up. We try to use seasonal veggies cause the taste better and have more nutrition.
Our favorite variation is tofu curry with red bell pepper and roasted eggplant. Cut 1 large eggplant into small dice and 1 large red bell pepper into strips. Put them on a baking tray, drizzle with 2 tablespoons of olive oil, a pinch of salt, two twists of pepper, and a pinch of paprika.
Roast them in a preheated oven at 390F or 200C until soft and slightly charred (about 15 minutes). Now toss them into the curry and simmer for another 10 minutes.
Use a different "protein"
I know this is a tofu curry, but you can actually replace the tofu very easily with any legumes. For instance, try adding a can of chickpeas instead of tofu. Absolutely delicious. You can even do a vegan curry with red lentils.
Tofu is made of soy, which is a legume. Any other whole legumes (beans, chickpeas, peas, lentils, etc) are a perfect replacement from a nutritional point of view. Even tempeh works.
Use different spices
Try a Thai red curry paste instead of Indian spices. We lived in Thailand for months and absolutely love Thai curries. A good curry paste should contain lemongrass, garlic, kaffir lime, galangal, red chili, cumin seeds, and cumin powder.
The process is very similar, and probably even easier as all the spices are already in the curry paste. You can buy it online, in Asian stores, or in the international section of most supermarkets these days.
- Sauté the onions in oil like before, add the garlic and ginger, sauté for another 30 seconds, then add the red curry paste (2 to 3 tablespoons). Stir and fry for a minute.
- Add the veggies (you can choose whatever you like, carrots, green beans, bell peppers, broccoli, cauliflower, zucchini, and eggplants are all good options) and the tofu (you can pan-fry the tofu separately beforehand if you like).
- Pour in ½ cup of vegetable broth and 1 can (15 oz) of coconut milk. Add 1 tablespoon of sugar, and 2 tablespoons of soy sauce or tamari sauce.
- Simmer for 10 - 15 minutes till you reach your desired thickness. Finish with either cilantro (fresh coriander) or Thai Basil. This last one is hard to find so you can replace it with regular Italian basil). Taste, adjust for salt if necessary, and serve on boiled or steamed jasmine rice.
- Note: do not add any salt to this curry unless necessary. The curry paste and the soy sauce should add enough saltiness to the dish.
Yes. Our tofu curry recipe is gluten-free.
Yes, kind of. This tofu curry is certainly Indian inspired, although I am not sure this exact recipe exists in India.
The best way to serve tofu curry is with basmati rice. Other types of rice work well too, like whole grain rice and jasmine rice. You can also serve this vegan curry with naan or with homemade flatbread.
It depends on your preference. In some parts of India, curries are thicker, almost like cream or paste, in others, they are thinner, more like a soup.
You can make your curry thicker by reducing the amount of vegetable broth, or by cooking the curry for longer.
Store leftovers in the fridge for up to 3 - 4 days, best in an airtight container. Reheat in a pot on the stovetop, adding a dash of water, or in the microwave.
Tofu curry is also suitable for freezing. The texture of the tofu will change slightly, becoming chewier, but that's normal. To freeze, let the vegan curry cool down completely. Then transfer it into a freezer-friendly container and freeze for up to 3 months.
Thaw it in the refrigerator (it'll take about half a day), in the microwave, or in a pot on the stovetop. In this case, though the heat should be very low.
- 2 tablespoons olive oil
- 1 medium onion
- 2 cloves garlic
- 1 inch ginger
- 2 teaspoons curry powder
- 1 teaspoon cumin
- ⅓ teaspoon chili flakes
- ½ teaspoon coriander (optional)
- 1 teaspoon turmeric powder (optional)
- 1 teaspoon salt
- ½ teaspoon pepper
- 2 cup vegetable stock
- 9 ounces tofu (firm or extra firm)
- 9 ounces vegetables of choice (cauliflower, green beens, red pepper, broccoli, sweet potato, or other)
- 1 small can (15 ounce) crushed tomatoes
- 1 small can (14 ounce) coconut milk (full fat or reduced fat)
- 1 teaspoon garam masala (optional, to add at the end)
- 4 wedges lemon
- 1 handful cilantro (or flat leaf parsley)
- 2 cups basmati rice
- 4 tablespoons unsweetened dairy-free yogurt (optional, a dollop on top)
- To a pot add the oil and chopped onion. Gently fry the onion for 3 minutes, then add grated garlic and grated ginger and fry gently for another minute.
- Turn the heat to low, then add curry powder, cumin, chili flakes, coriander, turmeric powder, pepper.Toast the spices while stirring on low heat for a short minute.
- Add vegetable broth, diced tofu, crushed tomatoes, salt, coconut milk, your vegetable of choice (we use cauliflower florets here) stir and cook for about 20 minutes, or till the vegetables are cooked.
- Towards the end, add garam masala and stir. Taste, adjust for salt and turn the heat off. Let the tofu curry cool down for 5 minutes before serving.
- Serve on basmati rice or whole grain rice with a generous squeeze of lemon juice, freshly chopped cilantro (or flat-leaf parsley) and optionally a dollop of unsweetened plant based yogurt on top.