Bengali Macher Jhol with Salmon
Macher Jhol is a Bengali fish curry built on a light tomato-onion gravy seasoned with nigella seeds and mustard oil, requiring only basic ingredients and 30 minutes to prepare. Its standout trait is the balance between the fragrant spice oil and delicate fish that remains tender throughout the brief simmer.

Total
25 minServings
6Ingredients
Check what you already have. We'll leave it off your shopping list.
11 Ingredients
CookOS may earn a commission from Instacart orders.
Powered by
Prices vary by store
*Service fees apply. Instacart® and the Instacart logo are registered trademarks of Maplebear Inc. d/b/a Instacart.
Instructions
- 1
Marinate the fish fillets with ½ teaspoon salt and ½ teaspoon turmeric. Leave it aside for 15 minutes.
- 2
Place a wok or heavy bottom pan at medium heat and pour the oil. Once the oil heats up, layer the fillets and fry for 1 minute on each side. Then, take it off the pan and keep it aside to be used later.
- 3
Take a separate big pan that can hold all the fish fillets. Pour 2 tbsp of the oil you used frying the fish. Sprinkle the nigella seeds and give it a few seconds to sizzle. Then, scatter the onion along with the salt, rest of the turmeric and sugar. Stir around and cook for 2 minutes, or until the onion has softened a little.
- 4
Add the sliced tomatoes along with the cumin powder and stir around. Cook for 3 minute, or until it's softened. Then, pour 1 cup of hot water. Bring it to a boil, and then layer the fried fish fillets along with chopped cilantro leaves and slit/ whole green chili. Let it simmer for 5 minutes flipping the fish fillet once in between.
- 5
Serve Rui macher jhol warm with steamed white rice.
Was this recipe helpful?
Tips & Notes
Pro tips
- Marinate fish with salt and turmeric for the full 15 minutes to season the flesh and firm the exterior before frying.
- Fry fish at medium heat for exactly 1 minute per side—higher heat will brown the exterior too quickly and lower heat won't seal it properly.
- Use 2 tbsp of the same mustard oil left in the pan after frying the fish to build the curry; it carries the sesame-mustard notes into the gravy.
- Simmer for exactly 5 minutes with one flip midway. Overcooking toughens the fillets; undercooking leaves them undercooked in the center.
Substitutions
- Rohu fillets → salmon, catfish, or tilapia fillets (cook time remains 5 minutes)
- Mustard oil → cannot be substituted without altering the authentic Bengali flavor profile
- Nigella seeds → 1/2 teaspoon cumin seeds (milder, less peppery result)
- Fresh cilantro → fresh parsley (less aromatic but adds green finish)
Storage & make-ahead
Store leftovers in an airtight container in the refrigerator for up to 2 days; reheat gently over medium heat for 3–4 minutes to avoid overcooking the fish.
Common Questions
Can I use a different fish instead of Rohu?
Yes. Any firm white fish fillet works—salmon, catfish, or tilapia. The cooking time remains the same; adjust thickness for even cooking.
Why fry the fish before adding it to the curry?
Frying for 1 minute per side seals the exterior, keeping fillets intact during the 5-minute simmer and preventing them from breaking apart in the gravy.
Can I make this ahead?
Prepare the gravy (through step 4 before adding fish) up to 1 day ahead. Refrigerate, then reheat and add fried fish fillets for the final 5-minute simmer just before serving.
Is mustard oil essential?
Yes—it provides the distinctive flavor of this Bengali dish. Vegetable or canola oil will produce a different, milder taste and changes the authentic profile.
How do I know when the fish is done?
After the 5-minute simmer with one flip, the fillets should flake easily with a fork and be opaque throughout. Do not overcook or they will become dry.







