Marinate the fish pieces with ½ tbsp of salt and ½ tbsp of turmeric powder. Leave the marinated fish aside for 15 minutes.
Place a pan on the gas stove. Pour 4 tbsp of oil into the wok. Once the oil is heated up, carefully add the fish pieces one by one to the oil. Then, cover it. (Pro Tip: I never overcrowd the pan with too many fish pieces to prevent breaking them).
Flip the fish pieces over and fry both sides. Take them out onto a plate when they are done.
Add chopped onions to the wok. When the onions turn light brown, add 2 tbsp of ginger-garlic paste. Keep stirring until the raw smell dissipates from the paste.
Add 1 tbsp of turmeric powder, 1 tbsp of red chili powder, 1 tbsp of Kashmiri red chili powder, and 1 tbsp of coriander powder. Stir well until the raw smell dissipates. Add a little bit of water to prevent the spices from burning. Stir well.
Now, add the chopped tomatoes and continue stirring. Add 1 tbsp of salt to help the tomatoes cook quickly.
Once the tomatoes become soft and blend well with the cooked onions, and the spices start releasing oil, add 2½ cups of water and cover it with a lid. Allow it to come to a boil.
Remove the lid and add the fried fish pieces and four green chilis. Cover the lid for 10 to 15 mins. (Pro tip: I keep the flame low here. It ensures perfect cooking and my fish holds together so much better).
Sprinkle 1 tbsp of roasted cumin powder and mix everything thoroughly. After a few minutes, turn off the gas. Sprinkle 1 tbsp of coriander leaves.
Your Bengali fish curry is ready.
Transfer the Bengali fish curry to a bowl. Serve it hot with steamed rice.