Tari Wali Machhi
River fish cooked in a thin, spicy onion-tomato broth.

About this dish
A specialty of the Punjab river regions, this fish curry is distinct for its light, spicy, and warming broth. It traditionally uses freshwater fish like Rohu or Malli. Unlike coastal curries, there is no coconut or tamarind here; instead, the sourness comes from tomatoes and the depth from slow-cooked onions and mustard oil.
Ingredients
Fish Preparation
- 750g Rohu or Katla fish, steak cuts
- 1 tsp (5g) Turmeric powder
- 1 tsp (5g) Salt
- Mustard oil for shallow frying
The Curry Base
- 3 large Onions, ground to a paste
- 3 large Tomatoes, pureed
- 1.5 tbsp (22g) Ginger-Garlic paste
- 2-3 Green chilies, slit
- 1 tsp (5g) Cumin seeds
- 1 tsp (5g) Carom seeds (Ajwain)
Dry Spices
- 2 tsp (10g) Red Chili powder
- 1 tbsp (15g) Coriander powder
- 1/2 tsp (2g) Garam Masala
- Fresh coriander for garnish
Method
- 1
Marinating the Fish
Clean the fish steaks thoroughly. Rub them with salt and turmeric and let them marinate for 15 minutes. This removes any 'fishy' odor and helps the fish stay firm during cooking.
- 2
Shallow Frying
Heat mustard oil in a wide pan until smoking. Shallow fry the fish for 2 minutes on each side until a light golden crust forms. Do not cook them through; this step is just to seal the exterior so they don't break in the gravy.
- 3
Starting the Gravy
In the same oil (add more if needed), add cumin and ajwain seeds. Once they pop, add the onion paste. Sauté the onion paste on medium heat for 10-12 minutes until it turns a light golden brown and the moisture evaporates.
- 4
Aromatic Base
Stir in the ginger-garlic paste and slit green chilies. Cook for 2-3 minutes. Ensure the onions are well-cooked, or the gravy will have a raw, pungent onion taste.
- 5
Tomato Reduction
Add the tomato puree along with the red chili and coriander powders. Cook until the masala starts leaving the sides of the pan and the oil separates clearly.
- 6
Creating the Tari
Pour in 2.5 cups (600ml) of hot water. Bring the mixture to a rolling boil. Season with salt. The gravy should be thin but rich in color.
- 7
Simmering the Fish
Gently slide the fried fish pieces into the boiling gravy. Lower the heat to medium-low. Cover and simmer for 6-8 minutes. Avoid stirring with a spoon; instead, gently swirl the pan to coat the fish.
- 8
The Finish
Sprinkle garam masala and freshly chopped coriander. Turn off the heat and let it stand for 5 minutes. The fish will finish cooking in the residual heat, remaining tender and moist.
Notes & variations
- Ajwain is non-negotiable in Punjabi fish dishes as it pairs perfectly with river fish.
- Don't over-fry the fish initially, or it will become rubbery once simmered in the gravy.
- You can use Basa if river fish is unavailable, but reduce the simmering time to 4 minutes.
- The curry tastes even better after 4 hours when the fish has fully absorbed the spices.
Serve with
Serve with plain steamed Basmati rice to allow the thin tari to shine.
Cook's note
Always use mustard oil for an authentic pungent kick that defines Punjabi fish curry.