Soya Bhaji
A simple home-style stir-fry made with soya chunks, onions, tomatoes, and everyday spices. It cooks into a lightly moist bhaji that pairs well with roti or rice and makes a satisfying protein-rich side or main dish.
For 4 servings
- boil · ~10 min
Boil the soya chunks.
1.Bring 4 cups water and 0.25 tsp salt to a boil in a pot.2.Add the soya chunks and cook for 8-10 minutes until soft and expanded.3.Drain the water well and let the chunks cool slightly.4.Squeeze out the extra water from the soya chunks and pulse or chop them into smaller bits if they are large.TIPSqueezing out the water well helps the soya absorb the masala better and keeps the bhaji from tasting watery. - prep
Prepare the vegetables and spices.
Finely chop the onion and tomato. Chop the ginger, mince the garlic, and slit or chop the green chili so everything is ready before you start cooking.
- saute · ~7 min
Cook the onion base.
1.Heat oil in a pan over medium heat.2.Add cumin seeds and let them sizzle for a few seconds.3.Add onion and cook until light golden, 5-6 minutes.4.Add ginger, garlic, and green chili and sauté for 1 minute until fragrant.TIPKeep the heat medium so the garlic does not burn and turn bitter. - saute · ~6 min
Cook the tomatoes and spices.
1.Add tomato and cook until soft and pulpy, 4-5 minutes.2.Add turmeric powder, red chili powder, coriander powder, garam masala, and 0.25 tsp salt.3.Mix well and cook for 1 minute.4.Add 0.5 cup water and cook until the masala thickens and the oil begins to show at the edges. - saute · ~6 min
Mix in the soya and cook the bhaji.
Add the squeezed soya chunks to the pan and mix well so they are coated with the masala. Cook for 5-6 minutes, stirring often, until the bhaji turns semi-dry and the flavors come together.
- garnish
Finish with coriander leaves and lemon juice.
Turn off the heat, then mix in the chopped coriander leaves and lemon juice for a fresh finish.
- serve
Serve the soya bhaji hot.
Serve hot with roti, chapati, or as a side with rice.
What to keep in mind.
7 tips from the recipe — small details that make a real difference to the final dish.
- 1After boiling, squeeze the soya chunks really well; trapped water dulls the masala and makes the bhaji soggy.
- 2If the chunks are large, pulse or finely chop them so the onion-tomato masala clings to every bite.
- 3Cook the onions only to light golden, not deep brown, so the bhaji stays home-style and not overly sweet.
- 4Let the tomatoes turn fully soft and pulpy before adding water; this prevents raw tomato sharpness in the final dish.
- 5Stop cooking when the bhaji is semi-dry and the masala coats the soya, since it will tighten slightly as it rests.
- 6Add lemon juice only after switching off the heat to keep its fresh tang and avoid bitterness.
- 7This bhaji reheats well the next day; sprinkle a few drops of water while reheating so it loosens without turning oily.
Adapt it for your goals.
Dry-style
Cook a little longer after adding the soya for a drier bhaji that packs well in lunchboxes and pairs especially well with chapati.
gravy styleGravy-style
Add a bit more water and simmer briefly for a softer, saucier version that goes better with rice.
peas addedPeas-added
Add green peas with the tomatoes for extra sweetness, color, and a more sabzi-like texture.
jainJain
Skip onion and garlic, increase tomato and ginger, and rely on cumin, coriander powder, and lemon for a lighter Jain-friendly version.
Why this is on our healthy list.
Protein-Rich Main or Side
Soya chunks make this bhaji especially filling and useful when you want a vegetarian dish with substantial protein.
Contains Aromatic Spices
Ginger, garlic, cumin, coriander, and turmeric add flavor depth without needing heavy cream or rich gravies.
Includes Fresh Herbs and Citrus
Coriander leaves and lemon juice brighten the dish and add freshness at the end, balancing the cooked masala.
Frequently asked questions
Usually the soya was not squeezed well after boiling. Extra water inside the chunks prevents them from absorbing the masala properly.



