Punjabi Fish Curry
Tender fish simmered in a lightly spiced Punjabi-style onion and tomato gravy with ginger, garlic, and warming whole spices. It is rich enough to feel special, yet simple enough for a family meal with rice or roti.
For 4 servings
- prep · ~10 min
Season the fish.
1.Rinse the fish pieces and pat them dry well.2.Rub the fish with 1 pinch of the salt and 1 pinch of the turmeric powder.3.Set aside for 10 minutes while you prepare the curry base.TIPDry fish browns better and is less likely to break in the pan. - fry · ~5 min
Lightly fry the fish.
1.Heat the mustard oil in a wide pan until it just starts to smoke lightly, then lower the heat.2.Add the fish pieces in a single layer and fry them gently for 1 to 2 minutes per side.3.Remove the fish to a plate once lightly sealed; do not cook it through.TIPA quick fry helps the fish hold its shape in the gravy. - saute · ~8 min
Cook the onion and spice base.
1.In the same pan, add cumin seeds and bay leaf.2.Add the onion and cook over medium heat until lightly golden, 6 to 7 minutes.3.Add the ginger-garlic paste and green chili, then cook for 1 minute until fragrant. - saute · ~7 min
Make the masala.
1.Add the tomato and cook until soft and pulpy, 5 to 6 minutes.2.Add the remaining turmeric powder, red chili powder, coriander powder, and the remaining salt.3.Cook the masala until the oil begins to leave the sides of the pan.TIPKeep the heat medium so the ground spices cook without burning. - mix · ~2 min
Stir in the yogurt.
Lower the heat and add the whisked yogurt a little at a time, stirring well after each addition so the gravy stays smooth and does not split.
- simmer · ~5 min
Simmer the gravy.
Pour in the water and bring the curry to a gentle simmer. Cook for 4 to 5 minutes so the masala blends into a smooth, medium-thick gravy.
- simmer · ~6 min
Finish the fish in the curry.
Slide the fried fish into the simmering gravy and spoon some sauce over the top. Cover and cook gently for 5 to 6 minutes, until the fish is tender and flakes easily.
TIPUse a gentle simmer and avoid frequent stirring so the fish pieces stay whole. - garnish
Sprinkle garam masala and coriander leaves.
- serve
Serve the fish curry hot.
Let the curry rest for 2 minutes before serving so the fish settles in the gravy. Serve with rice or roti.
What to keep in mind.
7 tips from the recipe — small details that make a real difference to the final dish.
- 1Use a wide pan so the fish can fry in a single layer and seal without steaming.
- 2Heat mustard oil until it just smokes to mellow its raw sharpness before adding the fish.
- 3Do not over-fry the fish in the first stage; it should only be lightly sealed, not fully cooked.
- 4Whisk the yogurt until smooth and add it on low heat in small additions to prevent splitting.
- 5Cook the onion-tomato masala until oil leaves the sides; that is the key cue for a deep Punjabi gravy.
- 6Once the fish goes back into the curry, spoon gravy over it instead of stirring hard to keep pieces intact.
- 7This curry tastes even better after a short rest, as the fish absorbs the spiced tomato-yogurt gravy.
Adapt it for your goals.
Boneless
Use thick boneless fillets for easier serving and less chance of bones, especially for children or weeknight meals.
spicierSpicier
Increase green chilies or red chili powder for a hotter curry that still keeps the Punjabi onion-tomato base.
low oilLow-oil
Shallow-sear the fish in less oil and use a nonstick pan; the curry stays flavorful but feels lighter.
no yogurtNo-yogurt
Skip the yogurt for a cleaner tomato-forward gravy if you want a lighter, slightly sharper finish.
Why this is on our healthy list.
Protein-Rich Main Dish
Fish makes this curry filling and nourishing, providing quality protein in a relatively light gravy.
Cooked with Aromatic Spices
Ginger, garlic, cumin, turmeric, and coriander add flavor depth while keeping the dish vibrant and satisfying.
Balanced with Yogurt
A small amount of yogurt adds tang and creaminess to the gravy without needing heavy cream.
Frequently asked questions
Choose a firm fish that holds its shape, such as rohu, surmai, cod, halibut, or any sturdy local white fish.



