Disclosure: This post may contain affiliate links. As an Amazon Associate, we earn from qualifying purchases. We only recommend products we trust.
Bengali fish curry, the homestyle macher jhol you spoon over hot rice, starts with seared firm fish and a mustard-kissed gravy. I make it with rohu or snapper, onions and tomatoes cooked down until glossy, green chilies for gentle heat, and turmeric plus either cumin seeds or panch phoron to perfume the broth.
The idea hit me on a breezy coastal evening when a fresh catch and a tiny bottle of mustard oil came home with me, and dinner practically announced itself.
If you want to get cooking right now, jump straight to the recipe card using the Jump to Recipe button, or skim the Table of Contents to hop to any section. I will keep the steps simple, the ingredients clear, and the flavors exactly where they should be, bright and comforting.
Table of Contents
Ingredients You’ll Need

- 1 lb firm fish (traditional: rohu or hilsa; substitutes: cod, haddock, tilapia, or catfish), cleaned, cut into 2-inch pieces, and patted dry
- 1 teaspoon turmeric powder, divided (half for seasoning fish, half for curry base)
- 1 teaspoon kosher salt, plus more to taste
- 2โ3 tablespoons mustard oil (or substitute 2 tbsp neutral oil + 1 tsp prepared mustard for flavor)
- 1 large onion, thinly sliced for a sweet, caramelized base
- 2โ3 fresh green chilies, slit lengthwise (adjust heat to your liking)
- 1 teaspoon ginger paste, for warmth and depth
- 1 teaspoon garlic paste, for aroma and flavor
- 1/2โ1 teaspoon red chili powder, adjust for spice level
- 2 medium tomatoes, chopped (or substitute 1 cup tomato puree)
- 1/2 teaspoon cumin seeds or 1 teaspoon panch phoron (Bengali five-spice mix), for that signature flavor
- 1 medium potato, peeled and cut into wedges (optional, but common in Bengali homes)
- 1.5โ2 cups hot water, to create the light curry broth (โjholโ)
- Handful of fresh cilantro leaves, chopped, for garnish at the end
Step-by-Step Instructions
Step 1: Season the Fish
Place the fish pieces in a bowl and rub them with half the turmeric and the salt. Let them sit for 10โ15 minutes. This not only seasons the fish but also helps firm it up before cooking.
Step 2: Sear the Fish
Heat the mustard oil in a wide pan until it just begins to smoke, then lower the heat slightly. Lay the fish pieces in carefully and sear for 1โ2 minutes per side until lightly golden. Remove and set aside on a plate.
Step 3: Build the Curry Base
In the same pan, add cumin seeds or panch phoron. Let them sizzle for 20โ30 seconds to release their aroma. Then add the sliced onions and cook until they turn golden brown, about 6โ8 minutes.
Step 4: Add Aromatics and Tomatoes
Stir in the green chilies, ginger paste, garlic paste, the remaining turmeric, and red chili powder. Cook for about 1 minute until fragrant. Add chopped tomatoes and cook until soft and the oil begins to separate from the masala, about 5 minutes.
Step 5: Create the Broth (Jhol)
If using potatoes, add them now. Pour in 1.5โ2 cups of hot water, depending on how light or soupy you want the curry. Stir well and bring to a gentle simmer. Cook until the potatoes are almost tender, about 8โ10 minutes.
Step 6: Simmer the Fish
Slide the seared fish pieces into the simmering curry. Lower the heat and cook gently for 4โ6 minutes, just until the fish is cooked through and flakes easily. Avoid stirring too much to prevent the fish from breaking.
Step 7: Finish and Serve
Taste and adjust salt if needed. Sprinkle chopped cilantro over the top. Let the curry rest for 2 minutes off the heat before serving. Enjoy with steamed basmati rice for an authentic Bengali meal.
Bengali Fish Curry Recipe
- Total Time: 35 minutes
- Yield: 4 servings 1x
Description
A classic Bengali fish curry (Macher Jhol) made with seared fish, mustard oil, onions, tomatoes, and warm spices. Perfect with steamed basmati rice.
Ingredients
- 1 lb firm fish (rohu, hilsa, or cod), cut into 2-inch pieces
- 1 teaspoon turmeric powder, divided
- 1 teaspoon kosher salt, plus more to taste
- 2โ3 tablespoons mustard oil (or 2 tbsp neutral oil + 1 tsp prepared mustard)
- 1 large onion, thinly sliced
- 2โ3 fresh green chilies, slit
- 1 teaspoon ginger paste
- 1 teaspoon garlic paste
- 1/2โ1 teaspoon red chili powder
- 2 medium tomatoes, chopped (or 1 cup puree)
- 1/2 teaspoon cumin seeds or 1 teaspoon panch phoron
- 1 medium potato, peeled and cut into wedges (optional)
- 1.5โ2 cups hot water
- Handful fresh cilantro, chopped
Instructions
- Season fish with salt and half the turmeric; rest 10โ15 minutes
- Heat mustard oil until it smokes, then lower heat and sear fish 1โ2 minutes per side; remove and set aside
- In the same pan, add cumin seeds or panch phoron; let sizzle briefly
- Add onions and cook until golden brown, 6โ8 minutes
- Stir in green chilies, ginger, garlic, remaining turmeric, and chili powder; cook 1 minute
- Add tomatoes and cook until soft and oil separates, 5 minutes
- Add potatoes (if using) and hot water; simmer until potatoes are tender
- Gently add seared fish; simmer 4โ6 minutes until cooked through
- Taste, adjust seasoning, garnish with cilantro, and serve with rice
Notes
Traditionally made with river fish like rohu or hilsa, but any firm white fish works well. Adjust chili heat to your liking.
- Prep Time: 15 minutes
- Cook Time: 20 minutes
- Category: Seafood
- Method: Stovetop
- Cuisine: Indian
Nutrition
- Serving Size: 1 serving
- Calories: 235
- Sugar: 4g
- Sodium: 640mg
- Fat: 13g
- Saturated Fat: 2g
- Unsaturated Fat: 10g
- Trans Fat: 0g
- Carbohydrates: 12g
- Fiber: 3g
- Protein: 19g
- Cholesterol: 50mg
Storage & Make-Ahead Tips
Hereโs a simple guide to keeping your Bengali fish curry fresh and easy to enjoy later:
| Type | How to Store | How Long | Reheating Tips |
|---|---|---|---|
| Leftover Curry | Store in an airtight container in the refrigerator. | Up to 2 days | Warm gently on the stovetop over low heat until just hot; avoid stirring too much. |
| Masala Base (onion-tomato mix) | Cook the onion, tomato, and spice base ahead and cool completely before storing. | 3 days in fridge, 2 months in freezer | Reheat base until bubbling, then add water and fish to finish cooking. |
| Seared Fish | You can sear the fish earlier in the day, cool it, and store in the fridge. | Up to 1 day | Drop seared fish into hot curry broth to finish cooking before serving. |
A Tasty Ending
This Bengali fish curry is proof that simple ingredients and a few spices can create something deeply comforting. With its mustard-scented broth, tender fish, and balance of warmth and brightness, itโs the kind of dish that feels both everyday and special.
You may also like:
– Amberjack Fish Grilled Recipe
Next time youโre looking for a cozy meal, let this curry be your answer, just ladle it over steaming rice and enjoy. Iโd love to hear how it turned out for you, so share your thoughts in the comments.
And of course, happy cooking!










