Katla Macher Kalia
A rich, celebratory Bengali fish curry where thick-cut steaks of katla are gently simmered in a spiced yogurt and onion gravy. The slow-cooked sauce carries the deep warmth of garam masala and the subtle sweetness of caramelized onions, finished with a drizzle of ghee for a luxurious sheen. Best devoured with steaming hot rice.
For 4 servings
- prep · ~10 min
Marinate the fish steaks.
1.Pat the katla steaks dry with a kitchen towel.2.Rub 0.5 tsp turmeric powder and 0.25 tsp salt evenly on both sides of each steak.3.Set aside for 10 minutes. - fry · ~8 min
Shallow fry the fish.
1.Heat 2 tbsp mustard oil in a kadai over medium heat until it smokes lightly and turns pale yellow.2.Gently slide in the marinated fish steaks, making sure not to crowd the pan.3.Fry each side for about 2 minutes until lightly golden. The fish should not be fully cooked.4.Remove immediately and set aside on a plate.TIPDon't fully cook the fish now — it will finish cooking in the gravy. - temper · ~1 min
Bloom the whole spices.
1.Add the remaining 2 tbsp mustard oil to the same kadai and heat over medium.2.Drop in the bay leaves, crushed green cardamom, cinnamon stick, and cloves.3.Sauté for 20 seconds until the spices become fragrant and sizzle. - saute · ~12 min
Caramelize the onions and aromatics.
1.Add the finely sliced onions to the pan with the sugar and fry on medium heat.2.Stir frequently and cook until the onions turn deep golden brown and shrink considerably, about 10 minutes.3.Add the ginger paste and garlic paste. Cook for another 2 minutes until the raw aroma disappears.TIPThe sugar helps the onions caramelize faster and gives the kalia its signature sweetness. - saute · ~4 min
Build the gravy base.
1.Turn the heat to low. Add the red chili powder, cumin powder, coriander powder, and remaining 0.5 tsp turmeric powder.2.Sauté the spices continuously for 1 minute, splashing 2 tbsp water if they start to stick.3.Add the chopped tomato and cook until it turns soft and mushy, about 3 minutes.TIPCooking spices on low heat prevents burning and removes the raw taste. - simmer · ~3 min
Incorporate the yogurt.
1.Move the pan away from heat for 1 minute to cool slightly.2.Pour in the whisked yogurt while stirring vigorously to prevent curdling.3.Return the pan to low heat and simmer gently for 2 minutes until oil starts to separate from the mixture.TIPAlways temper yogurt on low heat; sudden high heat will make it split. - simmer · ~18 min
Cook the gravy and add the fish.
1.Pour in 1 cup warm water, add the slit green chilies, and stir well. Season with the remaining 0.25 tsp salt.2.Bring the gravy to a gentle boil, then reduce the heat to low and cover. Simmer for 10 minutes.3.Uncover and gently slide in the lightly fried fish steaks along with any resting juices.4.Spoon gravy over the fish, cover again, and simmer for another 6 to 8 minutes. Do not stir; tilt the pan gently to mix.TIPGently tilting instead of stirring keeps the fish steaks intact. - garnish · ~5 min
Finish and serve hot.
1.Sprinkle the garam masala powder over the dish and drizzle with 1 tsp ghee.2.Turn off the heat, cover, and let it rest for 5 minutes.3.Garnish with fresh chopped coriander leaves and serve directly from the kadai.
What to keep in mind.
7 tips from the recipe — small details that make a real difference to the final dish.
- 1Use a heavy-bottomed kadai or pan to prevent the yogurt-based gravy from scorching.
- 2Dry the fish steaks thoroughly before marinating to ensure even browning and minimize splatter.
- 3Caramelize the onions until deep brown, not just golden — this builds the rich, sweet base of the kalia.
- 4Let the fried fish rest after frying so the juices settle; add them to the gravy for extra flavor.
- 5Always remove the pan from heat before adding yogurt, then stir continuously to avoid curdling.
- 6Add warm water to the gravy — cold water can shock the spices and affect the emulsion.
- 7Resist stirring once the fish is added; gently tilt the pan to distribute the gravy and keep steaks whole.
Adapt it for your goals.
Low-oil
Reduce oil to 2 tbsp total: skip frying the fish (add raw marinated steaks directly to the simmering gravy) and use a non-stick pan to caramelize the onions. The dish will be lighter but still flavorful.
high proteinHigh-protein
Replace half the fish with firm paneer cubes and add 1/2 cup boiled chickpeas. This boosts protein and fiber while keeping the Bengali gravy profile intact.
jainJain
Substitute katla fish with raw banana (kaccha kela) slices and use rock salt; replace onion and garlic with asafoetida (hing) and fennel seed paste. This keeps the kalia rich while adhering to Jain dietary restrictions.
veganVegan
Swap yogurt with thick cashew cream (1/2 cup cashews blended with 1/4 cup water) and use coconut oil instead of ghee. The gravy stays creamy and the spice balance remains authentic.
Why this is on our healthy list.
Rich in Omega-3 Fatty Acids
Katla (Indian carp) is a freshwater fish naturally high in omega-3s, which support heart and brain health.
Anti-Inflammatory Spice Blend
Turmeric, ginger, and garam masala provide curcumin and gingerol, both known for their anti-inflammatory properties.
Gut-Friendly Yogurt Base
The yogurt in the gravy contributes probiotics and calcium, aiding digestion when consumed with rice.
Low in Saturated Fat
Mustard oil, used for frying, is low in saturated fat and high in monounsaturated fats, unlike butter or cream.
Frequently asked questions
Yogurt curdles if the pan is too hot. Always remove the pan from heat, let it cool for a minute, whisk the yogurt smoothly, then stir it in vigorously before returning to low heat.



