My vegetable balti curry with potatoes is a comforting, flavour-packed dish that proves meat-free curry can be every bit as satisfying. It is full of fresh vegetables and tender potatoes in an aromatic balti sauce.
The recipe also gives you a versatile base curry gravy that you can use as a foundation for plenty of other Indian dishes, so it earns its place in your kitchen twice over.
Whether it is your first time cooking Indian food or you just want a reliable go-to, this one is simple, nourishing and full of flavour. Serve it alongside my Beef Madras Recipe for a curry night.
“As an Amazon Associate I earn from qualifying purchases.”
Pin itWhat is Vegetable Balti?
Vegetable Balti is a flavourful and aromatic vegetarian curry that has its roots in the Baltistan region of Northern Pakistan and Indian Kashmir. Over time, it has become a popular and versatile dish in British Indian cuisine, especially in the UK. The term “Balti” refers to the traditional round-bottomed, two-handled cooking pot in which this dish is both cooked and served.
The Vegetable Balti is known for its vibrant combination of vegetables, aromatic spices, and a tangy tomato-based curry gravy. The recipe typically includes an assortment of colourful vegetables such as onions, peppers, tomatoes, potatoes, okra, cauliflower, peas, and cabbage. The dish derives its rich and robust flavour from a base curry gravy, which is a blend of sautéed onions, carrots, tomatoes, and a variety of spices.
In preparing the Vegetable Balti, the vegetables are briefly stir-fried to retain their texture and colour, then simmered in the base curry gravy until fully cooked and infused with aromatic flavours. Yoghurt is often added toward the end to lend a creamy richness to the dish, and a knob of butter may be included to enhance the overall flavour.
Vegetable Balti is typically served hot, straight from the Balti pan, and pairs beautifully with naan bread, rice, or other Indian breads like roti or chapati. This dish is a delicious and wholesome vegetarian option that highlights the wonderful array of spices and flavours characteristic of Indian cuisine. As with many traditional dishes, variations of Vegetable Balti exist, with different regions and households adding their unique twists to the recipe.
A Closer Look at the Ingredients
This is really two recipes in one pan. First you build a smooth curry base gravy, the tangy, savoury foundation that a takeaway balti is made on, then you stir-fry a pile of fresh vegetables and finish them in that gravy.
- Base gravy onion, carrot, tomato and stock, cooked down with whole toasted spices and blended smooth. It is the difference between a proper balti and vegetables in a jar of sauce.
- Whole cumin and coriander seeds toasted in the fat at the start so their oils wake up and the flavour goes deep, rather than the flat note of stale ground spice.
- Potatoes the star here, cut into dice that go in raw so they cook through in the gravy and soak up all of it, turning soft and full of flavour rather than plain.
- Peppers, cauliflower, okra, cabbage and peas a proper mix of colour and texture. The okra and cauliflower want a little care, so they go in whole or in florets and are not stirred to pieces.
- Garlic ginger paste in both stages, the aromatic backbone of any Indian curry.
- Yogurt and a knob of butter stirred in at the very end for a creamy, rounded finish.
Equipment You’ll Need
You cook the two stages in two pans, and you need a way to blend the gravy smooth.
Chef’s tip: the real secret to a proper balti is a tangy, homemade curry gravy as the base - not a jar - and freshly made masala rather than shop-bought garam masala. I toast whole spices in a dry pan until they smell fragrant, then grind them fresh; blooming them like that wakes up the oils and gives a depth you simply can’t get from a packet.
How to Make Vegetable Balti, Step by Step
Stage One: The Curry Base Gravy
- Heat the fat. Warm the ghee or oil in a large saucepan over a medium heat. Ghee gives the richer, more traditional flavour, but plain vegetable oil is what most Birmingham balti cooks actually use, so either is right.
- Toast the whole spices. Add the whole cumin and coriander seeds and let them sizzle for about a minute until they smell fragrant and toasty. Toasting them in the hot fat wakes up the aromatic oils, which is the deep, proper-curry flavour you cannot get from tired ground spice. If you are using ground cumin and coriander, hold them back and add them later with the other ground spices.
- Soften the onion and carrot. Stir in the diced onions and carrot and cook for five to six minutes, stirring now and then, until the onions are soft and translucent. This is the sweet, savoury bulk the whole gravy is built on, so give it time rather than rushing it over high heat.
- Cook out the garlic and ginger. Add the garlic ginger paste and cook for a minute or two, stirring constantly, until the raw, sharp smell has gone. Cooking it out now stops it tasting harsh in the finished gravy.
- Bloom the ground spices. Mix in the turmeric, chilli powder, garam masala and paprika, and the ground cumin and coriander if you are using them. Stir for a moment to coat everything and let the spices bloom in the fat, which is where their colour and flavour open up.
- Break down the tomatoes. Add the chopped tomatoes and cook, stirring, for about five minutes until they soften and start to collapse into the onions. This builds the tangy, savoury body that a balti gravy needs.
- Add the stock. Pour in the vegetable stock, stir well, and bring it up to a gentle boil. This is what turns a thick spiced base into a pourable gravy you can simmer and then blend.
- Simmer covered. Turn the heat down to a simmer, cover the pan, and cook for 20 to 25 minutes until everything is completely tender and the flavours have married. A covered pot keeps the liquid in so the gravy does not reduce away before the vegetables are soft.
- Blend it smooth. Take the pan off the heat and let it cool for a few minutes, then blend it to a smooth, thick gravy with a stick blender or in a jug blender. Smooth is the whole point of a base gravy, so keep going until there are no lumps; loosen it with a splash more stock if it is thicker than you want.
- Taste and season. Taste the gravy and adjust it, adding salt or a little more of any spice it needs. This is your foundation, so get it right here and the finished balti almost cooks itself. Any gravy you do not use today freezes beautifully, so it is worth making the full amount.
Stage Two: The Vegetable Balti
- Heat the balti pan. Warm the ghee or oil in a balti pan or large wok over a medium to high heat. The balti stage is meant to be fast and lively, so the pan wants to be genuinely hot before the vegetables go in.
- Start the onions. Add the separated onion layers and stir-fry for a few minutes until they begin to soften at the edges but still keep some bite. In a balti the onions stay in petals rather than melting away, which is part of the texture.
- Add the potatoes and peppers. Toss in the diced potatoes and the green and red peppers and stir-fry for a couple of minutes. The potatoes go in raw and will finish cooking in the gravy, soaking it up as they soften.
- Colour the tomatoes. Add the tomato wedges and stir for a moment until they start to break down and release their juices, which loosens the pan and adds a fresh, tangy note on top of the deeper gravy.
- Add the rest of the vegetables. Tip in the cabbage, okra, peas and cauliflower florets and stir everything together to spread the vegetables out evenly. Fold rather than beat them so the okra and cauliflower keep their shape instead of breaking up.
- Coat with garlic ginger. Stir in the garlic ginger paste and stir-fry for a minute or two so it coats the vegetables and cooks out, laying a second layer of aromatics over the fresh veg.
- Pour in the base gravy. Add the base curry gravy, starting with two ladles and adding a third if you like it saucier. Two gives a thick, clinging balti; three makes it looser and more spoonable. This is where the whole stir-fry becomes a curry.
- Simmer covered. Stir it together, bring it to a simmer, then turn the heat to low, cover the pan and cook for 15 to 20 minutes. Covering and simmering gently is a deliberately softer finish than a classic empty-pan balti, and it is what gets the raw potato and cauliflower cooked through without catching. They should be tender but still hold their shape.
- Taste and adjust. Taste again and adjust the seasoning, salt or a little more chilli, once the vegetables are nearly done. The gravy concentrates as it simmers, so it is worth checking at the end rather than the start.
- Stir in the yogurt off the heat. Take the pan off the heat, or turn it right down, before you stir in the yogurt. Yogurt curdles the moment it nears the boil, splitting into grainy lumps, so a hot but not bubbling pan lets it melt in and give the creamy, rounded richness you want without splitting.
- Add a knob of butter. If you cooked with oil rather than ghee, stir in a knob of butter now for the glossy, rich finish that ghee would have given from the start. It is optional but it is what makes it taste like a restaurant balti.
- Rest and serve. Once the vegetables are cooked the way you like them and the gravy clings, take it off the heat and let it sit for a minute to settle. Scatter with fresh coriander and serve it hot, ideally straight from the pan.
Recipe Card for Vegetable Balti Curry with Potatoes
Balti - Vegetable Curry with Potatoes
A two-stage vegetable balti: a smooth, tangy homemade base gravy, then a fast stir-fry of potatoes, peppers, cauliflower and okra finished in it. The base freezes for months, so it earns its place twice over.
Equipment I Use
Ingredients
Instructions
In a large saucepan or pot, heat the ghee or vegetable oil over medium heat.
Add the cumin seeds and coriander seeds to the hot oil. If you’re using ground spices, add them later with the other spices. Sauté for about a minute until the seeds release their aroma.
Add the diced onions and carrots. Cook for 5-6 minutes, stirring occasionally, until the onions are soft and translucent.
Stir in the garlic ginger paste. Cook for another 1-2 minutes, stirring continuously, until the raw smell of garlic and ginger dissipates.
Mix in the turmeric, red chilli powder, garam masala, and paprika. If using ground cumin and coriander, add them now. Stir to evenly coat the vegetables with the spices.
Add the chopped tomatoes. Cook and stir for about 5 minutes, until the tomatoes soften and start to break down.
Pour in the vegetable stock and stir well. Bring the mixture to a gentle boil.
Lower the heat to a simmer, cover, and cook for 20-25 minutes, until the vegetables are tender and the flavours meld together.
Once the vegetables are fully cooked, turn off the heat and let the mixture cool slightly. Use a blender or immersion blender to blend the mixture into a smooth, thick gravy. Add more vegetable stock if needed to reach your desired consistency.
Taste the gravy and adjust the seasoning, adding more salt or spices if necessary.
Heat the ghee or vegetable oil in a Balti pan or a large wok over medium heat.
Add the separated onion layers to the pan and stir-fry for a few minutes until they start to soften.
Toss in the diced potatoes, green, and red peppers. Continue stir-frying for a couple of minutes until they begin to soften slightly.
Add the tomato wedges to the pan and sauté briefly until they start to break down and release their juices.
Add the white cabbage, okra, frozen peas, and cauliflower florets to the pan. Stir everything together to evenly distribute the vegetables.
Stir in the garlic ginger paste and continue to stir-fry for 1-2 minutes, ensuring the vegetables are well coated with the paste.
Pour in the base curry gravy. Start with 2 ladles and adjust the amount based on your preference for how saucy you want the Balti to be.
Stir everything together and bring the mixture to a simmer. Reduce the heat to low, cover the pan, and let the vegetables cook in the gravy for about 15-20 minutes, or until they are fully cooked but still retain some texture.
Taste the dish and adjust the seasoning, adding more salt or spices if necessary.
Stir in the yoghurt and mix it well with the vegetables and gravy to add a creamy richness to the dish.
If you’re using vegetable oil, you can add a knob of butter at this stage to enhance the flavours of the Vegetable Balti.
Once the vegetables are cooked to your liking and the flavours have melded together, turn off the heat.
Chef’s notes
Make the base gravy in full, or double it. It is a freezer staple: it keeps three to four days in the fridge and up to six months frozen in curry-sized portions. Freeze it thick and let it down with water when you use it.
Toast the whole spices in the fat first. A minute in the hot ghee wakes up their oils and gives the base a depth that ground spice straight from the jar cannot.
The balti stage is a covered simmer on purpose. A classic balti is fast and open, but the raw potato and cauliflower here need the gentler covered cook to soften through without catching.
Stir the yoghurt in off the heat. Yoghurt curdles the moment it nears the boil, so a hot but not bubbling pan lets it melt in smoothly. A knob of butter at the end adds the richness if you cooked with oil.
Nutrition per serving
Storing the Base Gravy and the Finished Curry
The best thing about building a base gravy is that it is a make-ahead staple, not a one-off. A blended base keeps in the fridge for three to four days and freezes for up to six months, so it is worth making the full batch, or even doubling it, and freezing what you do not use in curry-sized portions. Freeze it thick and let it down with a little water when you come to use it.
The finished balti keeps well too. Cool it, then store it covered in the fridge for up to three days or freeze it for up to three months; like most curries the flavour deepens overnight. Reheat it gently on the hob or in the microwave until piping hot right through. If yours has yogurt stirred through, keep the reheat gentle and do not let it boil hard, for the same reason you added the yogurt off the heat in the first place.
🍽 What to serve with it: a balti is traditionally eaten with warm naan rather than rice, torn and used to scoop the curry straight from the pan it is cooked in. Basmati rice is lovely too if you would rather, and a cooling cucumber raita on the side balances the spice.
Variations for the Vegetable Balti Recipe
- Paneer Balti: Replace some or all of the vegetables with cubed paneer (Indian cottage cheese) for a creamy, protein-rich twist that adds richness to the dish.
- Tofu Balti: For a vegan option, substitute tofu for the paneer or add it along with the vegetables. The tofu will absorb the flavourful curry base, creating a satisfying and nutritious meal.
- Mushroom Balti: Add sliced mushrooms to the vegetable mix for a meaty, earthy flavour that complements the spices and brings a deeper, umami-rich taste to the curry.
- Chickpea Balti: Include cooked chickpeas in the curry to add a hearty, protein-packed element that makes the dish even more filling and nutritious.
- Spinach Balti: Stir in fresh spinach leaves toward the end of cooking for a healthy, vibrant touch that boosts the nutritional value with added iron and vitamins.
- Coconut Balti: For a tropical flair, add coconut milk to the base curry gravy. This will give the dish a creamy texture and a subtle sweetness that balances the spices beautifully.
- Lentil Balti: Mix in cooked lentils for an extra dose of fibre and texture, making the dish even more hearty and satisfying.
- Cashew Balti: Add cashew nuts for a lovely crunch and a nutty flavour that adds a new dimension to the curry, making it both rich and satisfying.
- Eggplant Balti: Incorporate diced eggplant (aubergine) for a delicious, meaty texture. The eggplant absorbs the spices and gravy, adding a rich and satisfying element to the dish.
Pin itFAQ for Vegetable Balti
Can I freeze and scale down the base gravy?
Yes, and it is the whole point of making one. The base gravy freezes for up to six months, so make the full batch or double it and freeze what you do not use today in curry-sized portions. Freeze it thick and let it down with water when you come to use it. If you would rather make less, halve the base-gravy ingredients; it scales straight down.
Do I need a balti pan?
No. A large wok works exactly as well, which is what plenty of people who own a balti pan will tell you, and any wide, heavy frying pan does the job. What matters is a wide pan that takes real heat, not the shape of it. If you do want a proper one, the Birmingham Balti Bowl Company is the name people recommend.
Can I use a different oil instead of ghee?
Yes. Ghee gives the richest, most traditional flavour, but plain vegetable or rapeseed oil is what most Birmingham balti cooks actually use, and you can stir in a knob of butter at the end to make up the richness. Any neutral oil is fine.
Why did my curry gravy taste bitter?
Bitterness in a curry base almost always comes from something browning too far: garlic and ginger scorched rather than softened, or ground spices burnt in a pan that was too hot. Cook the aromatics gently until soft, add the ground spices for only a moment before the tomatoes go in, and keep the heat under control while the base builds.
Is it vegan?
Almost. The dish is vegan apart from the yogurt and the optional butter at the end. Use a plant yogurt and leave out the butter, or cook with oil rather than ghee, and it is fully vegan.
What makes a balti different from other curries?
Balti is a British-Indian style that grew up in Birmingham: the curry is finished fast over high heat and traditionally cooked and served in the same round, two-handled balti bowl, so it arrives fresh and lively rather than long-stewed.
Can I add meat or paneer?
Yes. Chicken, lamb or paneer all work well. Cook the protein through first, then fold it into the balti with the vegetables so it warms through in the gravy.
How do I make it spicier or milder?
Scale the chilli powder and add fresh green chilli for more heat. For milder, hold back the chilli powder and stir in a little extra yogurt at the end, which cools it down as well as enriching it.
More recipes you’ll like
- Chickpea and Sweet Potato Madras - a hearty, fiery vegetarian curry that leans on the same base of spices
- Mango Butter Chicken - a mellow, fruity, creamy curry for the other end of the heat scale
- Laffa Bread - soft flatbread to scoop up every last bit of the gravy
A Few Words from the Chef
People are always surprised that a vegetable curry can taste this full, and the secret is not a secret at all: it is the homemade base gravy. Make it once, freeze what is left, and you have the start of a dozen curries in the freezer. This one earns its place in the kitchen twice over.
Follow my Culinary Journey
New recipes in your inbox, plus food & farm photography from my kitchen and allotment.

