This fiery vegetable vindaloo is packed with veggies, kicky spices, and protein, thanks to (surprise) tofu! Serve it with rice and fresh cilantro for a delicious knock-your-socks-off vegan Indian-inspired meal.

Vindaloo was always one of my favorite dishes to order at Indian restaurants, and apparently I have a habit of messing with it. Over the years I've come up with all kinds of non-traditional vindaloo recipes, and this vegetable vindaloo is no exception. It has plenty of the things I love about vindaloo — potatoes and veggies in tangy, spicy sauce. But there's one ingredient in particular that might raise some eyebrows.
Jump to:
I won't keep you in suspense: it's tofu. I put tofu in my vindaloo, and I have no regrets! This is a vegan vindaloo, with potatoes, served over rice, which is great, but awfully carby for me. I needed a little something to balance things out, and tofu was the answer. It's packed with protein and perfect in spicy sauce. And hey, tofu has worked out great in a bunch of other vegan Indian recipes for me — just check out my vegan saag paneer, tofu tikka masala, and vegan matar paneer.
This vegan vindaloo is loaded with fiery flavor and tastes like it came from a restaurant. It's surprisingly easy to make too, with most of the work being (full disclosure) hunting down a lot of spices at the grocery store. It's so worth it, though, and if you love Indian food, just check out the recipes featured at the bottom of this post — you'll find more delicious ways to use them!
Ingredients You'll Need
Below you'll find a list of ingredients in this recipe, with notes and substitutions. Scroll all the way to the bottom of the post to see the full recipe, including the amount of each ingredient.
- Onion.
- Garlic.
- Ginger.
- Serrano pepper. You can substitute another variety of chili pepper if you've got one on hand. The flavor of the dish may vary a bit.
- Fresh cilantro.
- Tomato paste.
- Ground spices. You'll need to stock up for this recipe! Make sure you have cumin, turmeric, coriander, cinnamon, ground fenugreek seed, black pepper, cloves, and cayenne pepper.
- Whole spices. Here you'll need cumin seeds and black mustard seeds.
- Vegetable oil. Any neutral high-heat oil you like to cook with will work — corn, canola, avocado, and peanut oil are all good options.
- Tofu. I like using super-firm tofu for this recipe, because it has a great texture and is easy to work with. Extra-firm will also work, but you'll need to press it first.
- Yellow potatoes. Feel free to substitute another variety of potato, like red or russet.
- Green beans.
- Red bell pepper.
- Canned tomato sauce.
- White vinegar. Apple cider vinegar or white wine vinegar can be substituted, if needed.
- Brown sugar. Use organic brown sugar to keep the recipe vegan. Conventional brown sugar is often processed using animal bone char.
- Accompaniments. I love serving my veggie vindaloo with basmati rice and a sprinkle of fresh cilantro. Some vegan naan is also nice!
How It's Made
Below is a detailed photo tutorial on how to make this dish. Scroll all the way down if you'd like to skip right to the recipe!

Step 1: Make the paste. Place the onion, garlic, ginger, serrano pepper, cilantro, tomato paste, and ground spices into a (preferably mini) food processor and blend everything to a paste.

Step 2: Cook the tofu. Heat some oil in a pot, then add tofu cubes. Pan-fry the tofu for a few minutes, until golden brown and crispy.
Tip: A mini food processor works best for blending the small quantity of ingredients needed for the paste. If you don't have one, your best bet is to double the batch and use a full-sized food processor. You can freeze half of the paste for next time you make vindaloo!

Step 3: Cook the whole spices. Heat a bit more oil in the pot, then add your whole cumin and black mustard seeds. Cook them for about a minute, stirring constantly.

Step 4: Cook the paste. Add your vindaloo paste to the pot and cook it with the whole spices for about a minute. Stir constantly to prevent burning. It should thicken and darken a tad.

Step 5: Initial simmer. Add your water, potatoes, green beans, and pepper. Bring the water to a boil, then lower it to a simmer. Cover the pot and let it cook until the potatoes are easily pierced with a fork. Make sure to uncover and stir it a few times.

Step 7: Finish. Take the pot off the heat and add the vinegar and brown sugar. Add salt to taste, then cayenne pepper to taste, going slow so as not to overdo it.

Step 8: Serve. Your vegan vindaloo is ready! Enjoy it with some rice and a sprinkle of cilantro.
Variations
- Veggie swaps. Replace the veggies with your favorites, but stick with firmer veggies so they don't overcook. Try sweet potato, winter squash, cauliflower, or carrots.
- Protein swaps. Replace the tofu with tempeh, seitan, or your favorite meat alternative. You can even keep things super simple and throw in a can of chickpeas.
- Make it creamy. Stir in ¼ to ½ cup of coconut cream to add richness to the sauce.
Frequently Asked Questions
Yes! The recipe, as written, includes no gluten-containing ingredients.
It is! You can make a milder version by omitting the serrano pepper and cayenne pepper. Or try one of my milder curries, like my mixed vegetable curry, green bean curry, or slow cooker curry.
Make sure you're uncovering the pot and stirring every few minutes. The potatoes need to move around to cook evenly. Also, make sure you don't add the vinegar (or any other acidic ingredient) early, as it can prevent potatoes from softening.
Leftover vindaloo will keep in an airtight container in the fridge for about 3 days. I don't recommend freezing it, as this can alter the texture of the tofu and potatoes.
More Vegan Indian Curries
Like this recipe? If so, please stop back and leave me a review and rating below if you try it! Also be sure to follow me on Facebook, Pinterest or Instagram, or subscribe to my newsletter for more recipes like this one!
📖 Recipe
Vegetable Vindaloo
Equipment
- 1 Mini food processor (see Note 1 if using a full-sized food processor)
Ingredients
For the Vindaloo Paste
- 1 small onion, quartered
- 5 garlic cloves
- 1 (1-inch) piece fresh ginger
- 1 serrano pepper, seeded
- ¼ cup fresh cilantro
- 2 tablespoons tomato paste
- 2 teaspoons ground cumin
- ½ teaspoon ground turmeric
- ½ teaspoon ground coriander
- ½ teaspoon ground cinnamon
- ½ teaspoon ground fenugreek seed
- ½ teaspoon black pepper
- ¼ teaspoon ground cloves
For the Curry
- 2 tablespoons vegetable oil, divided
- 1 (16 ounce/454 gram) package super-firm tofu, cut into approximately ¾-inch cubes
- 1 teaspoon cumin seeds
- ½ teaspoon black mustard seeds
- 2 cups water
- 1 ½ pounds yellow potatoes, cut into bite-sized pieces
- 1 ½ cups green beans, cut into 1 to 2 inch pieces
- 1 red bell pepper, roughly chopped
- 1 (8 ounce/227 gram) can tomato sauce
- 3 tablespoons white vinegar
- 1 tablespoon organic brown sugar
- Salt, to taste
- Cayenne pepper, to taste (Note 2)
For Serving
- Cooked rice
- Chopped fresh cilantro
Instructions
- Place all of the paste ingredients into a mini food processor fitted with an S-blade (Note 1). Blend until relatively smooth, stopping to scrape down the inside of the bowl as needed.
- Coat the bottom of a large pot with 1 tablespoon of the oil and place it over medium heat. Give the oil a minute to heat up, then add the tofu cubes in a single layer. Cook the tofu for about 10 minutes, flipping the pieces once or twice, until golden brown. Transfer the tofu to a plate.
- Add the remaining tablespoon of oil to the pot, then add the cumin and mustard seeds. Cook the seeds for about 1 minute, stirring constantly.
- Add the paste to the pot and cook it with the seeds for about 1 minute, stirring constantly, until it thickens and darkens slightly.
- Stir in the water, potatoes, green beans, and pepper. Raise the heat to high and bring the liquid to a boil, then reduce the heat to a low simmer, cover the pot, and let the mixture cook for about 25 minutes, until the potatoes are fork-tender. Uncover the pot and stir the mixture every 5 to 10 minutes while it cooks. Replace the lid after stirring.
- Uncover the pot and stir in the tomato sauce and tofu. Let the mixture simmer for 5 minutes longer, until the sauce thickens slightly.
- Remove the pot from heat and stir in the vinegar and brown sugar. Season the mixture with salt to taste, then add cayenne pepper to taste.
- Serve with rice and top each portion with a sprinkle of fresh cilantro.
Notes
- You can use a full-size food processor, but you'll need to stop the machine quite a bit to scrape down the inside of the bowl, and you may have trouble blending it smoothly. I recommend doubling the batch to make blending easier, then freezing half for later.
- Start with a little and add to taste. I use about ¾ teaspoon, which makes it pretty hot.
- Nutrition information does not include rice.
Would you like to save this?
Nutrition
Nutrition information is provided as an estimate only and may vary based on ingredients, brands, portion sizes, and preparation methods.









lovely dish , I added tamarind paste instead of vinegar , don't knock it til you have tried it , next day it was even better served a toasted sandwich
love the look of this but shouldn't a Vindaloo paste have vinegar in it, or like a lot of dishes, regional variations ?
Vinegar in the sauce or meat marinade makes Vindaloo vs. Curries.
Yes, I am surprised there is no vinegar in this recipe. If I make it, I will add vinegar!
This was unfortunately my first "miss" of a recipe from here. I followed the directions and even went heavy on the spices but this dish came out very bland. Ate one serving then went back and threw every spicy thing I could find in my kitchen into the pot for leftovers.
Delicious recipe exactly as written! Ty!
I don't own a food processor or blender because my kitchen is incredibly and insultingly small. Just a super-cheap Magic Bullet that isn't great for pureeing things that don't have a lot of liquid. However, if I were to take a shortcut and use jarred vindaloo paste, how much should I use for this recipe?
I'd try 5 or 6 tablespoons. Good luck and enjoy!
I didn’t care for the flavor of this dish and thought the sambal oelek added a sour taste. To try to improve it, I added a small amount of coconut milk (lite version) and then my husband loved it.
Actually, the name Vindaloo has nothing to do with Potato. Its from the Portuguese carne de vinha d'alhos (literally "meat in garlic wine marinade"),
Interesting! I'd heard that this dish had Portuguese origins, but I didn't know that. Thanks for sharing!
This was excellent! I made it as the vegan offering for a mixed group of carnivores, vegetarians and a vegan, and all agreed it was great, loads of flavor and just the right amount of heat. I didn't change anything about the recipe and, after making it once, don't see any changes I'd make. This one is definitely going into the rotation.
Yay! I'm so happy to hear that! Thanks Denise!
This was so good! I had it for lunch the next day and I was looking forward to it all morning!
Made this tonight. My husband liked it, but I didn’t love it. The paste smelled amazing and the dish looked beautiful when it was done. I taste heat, but not a lot of flavor, if that makes sense. Maybe it’s a dish that tastes better the second day.
So many curry misconceptions out there! I always thought it was the spice blend! My Mom always thought that almost all the curry spice blends were the same, and thought that curry had no "spice" and you could just add the pepper to the heat level you like. And my sisters and I were like "No.... not at all" I mean maybe they do that in restaurants lol
Ha! There was a time that I thought all curries were the same too, and that it was specific herb! I guess it didn't help that curry leaves are actually a thing. It wasn't until I started cooking Thai food that I realized curry is a generic term that applies to lots of things!
Looks incredible and I will be trying it later this week. Actually, Vindaloo is a Portuguese dish, not Indian, although they do serve it in Indian restaurants.
Oh, interesting! I've never heard that before! I hope you enjoy this!
It's not Portuguese dish. It was influenced by the Portuguese marinating meat in red wine vinegar and garlic. However with time it became more and more Indian with the addition of Indian pickling spices like mustard, chillis, cumin, black pepper, etc. This is a recipe for a great curry, just not a Vindaloo.
I am sure it’s a great dish but it’s not Vindaloo because it’s wrong at so many levels. First of all vindaloo cannot be made without vinegar - it’s an integral part of the dish. There is no aloo in vindaloo a😂. Vindaloo is a standard dish in former Potuguese colony of Goa and it’s cooked with pork marinated in garlic, spices and vinegar. The dish gets its name from Portuguese ‘carne de vinha d'alhos ‘ which translates as "meat in wine and garlic marinade. ‘Vinha’ is wine and ‘alhos’ is garlic. The Goans replaced the wine with locally made coconut vinegar.
As I said the dish sounds great but don’t call it vindaloo as it’s not authentic
This vindaloo looks so incredibly flavorful! I'd love to eat this with a side of naan bread :)
Naan would be perfect with it! Thanks Sarah!