The smell of mustard oil sizzling in the pan takes me straight back to my grandmother’s kitchen in Kolkata. That is where I learnt how to make Bengali fish curry, or macher jhol, properly. On every Sunday, this simple curry brings all members of my family together to the table.

At a Glance:
- Bengali Fish Curry or macher jhol is a must-have dish in Bengali diet and culture.
- I love the typical savory, mildly spicy, and tangy taste of this dish.
- I love serving mine over hot steamed rice, alongside a simple cucumber salad for balance.
- Start to finish, this takes me about forty five minutes, including the fifteen minute marinating time upfront.
- As alternatives, I suggest you try Doi Maach, Shorshe Ilish, Chingri Malai Curry, Rui Macher Kalia, Koi Macher Jhal, and more.
How to Cook Bengali Fish Curry (Step by Step Images)?
1. Marinate the fish pieces with ½ tbsp of salt and ½ tbsp of turmeric powder. Leave the marinated fish aside for 15 minutes.

2. 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).
3. Flip the fish pieces over and fry both sides. Take them out onto a plate when they are done.

4. Add chopped onions to the wok. When the onions turn light brown, add 3 tbsp of ginger-garlic paste. Keep stirring until the raw smell dissipates from the paste.

5. 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.

6. Now, add the chopped tomatoes and continue stirring. Add 1 tbsp of salt to help the tomatoes cook quickly. 
7. 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.

8. 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).
9. 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.

10. Your Bengali fish curry is ready. 
11. Transfer the Bengali fish curry to a bowl. Serve it hot with steamed rice.

Variations to Try
- I use bhetki fish in place of Rita fish sometimes.
- Sometimes I add potato wedges in it to make it more substantial.
- I also add a spoon of mustard paste when I want more pungency.
- For my kids, I usually reduce the amount of chili powder and omit green chilies.
Bengali Fish Curry Recipe Quick Fixes
Q: Why is there a layer of oil floating on top of my curry?
A: I have noticed this happens if I add oil too liberally in step 2. Take only as much as instructed.
Q: My onions won’t turn brown. They just stay pale and glued to the pan. Why?
A: This has happened to me a few times. In step 4, reduce the heat a little and splash a little bit of water. They will brown evenly and not burn.
Q: The raw smell of the spices never really disappears. What is wrong?
A: In step 5 you need to stir the spices longer over a low heat. It will eventually dissipate.
Q: My fish tasted too salty after marinating. How do I remedy this?
A: This tricked me once when making this dish for a big family lunch. All I did was reduce the amount of salt as the curry itself will be seasoned later and tasted before serving.
Recipe Card:

Bengali Fish Curry (Macher Jhol)
Ingredients
- 750 grams Rita Fish (cut into 10 pieces and cleaned)
- 3 pieces Onions (chopped)
- 2 tablespoons Ginger-Garlic Paste
- 3 pieces Tomato (chopped)
- 1½ tablespoon Turmeric Powder
- 1 tablespoon Red Chili Powder
- 1 tablespoon Kashmiri red chili powder
- 1 tablespoon Coriander Powder
- 4 pieces Green Chili
- 1 tablespoon Coriander Leaves
- 1 tablespoon Roasted Cumin Powder
- 4 tablespoons Mustard Oil
- Salt to Taste
Instructions
- 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.







