Get our Cookbook for FREE! โ†’

Bengali Fish Curry (Macher Jhol): Easy Home-Style Recipe

Updated on

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

Bengali Fish Curry Ingredients
  • 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.


Print
clock clock iconcutlery cutlery iconflag flag iconfolder folder iconinstagram instagram iconpinterest pinterest iconfacebook facebook iconprint print iconsquares squares iconheart heart iconheart solid heart solid icon
Bengali Fish Curry 1

Bengali Fish Curry Recipe


5 Stars 4 Stars 3 Stars 2 Stars 1 Star

No reviews

  • Author: Maya Marin
  • 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

Scale
  • 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

  1. Season fish with salt and half the turmeric; rest 10โ€“15 minutes
  2. Heat mustard oil until it smokes, then lower heat and sear fish 1โ€“2 minutes per side; remove and set aside
  3. In the same pan, add cumin seeds or panch phoron; let sizzle briefly
  4. Add onions and cook until golden brown, 6โ€“8 minutes
  5. Stir in green chilies, ginger, garlic, remaining turmeric, and chili powder; cook 1 minute
  6. Add tomatoes and cook until soft and oil separates, 5 minutes
  7. Add potatoes (if using) and hot water; simmer until potatoes are tender
  8. Gently add seared fish; simmer 4โ€“6 minutes until cooked through
  9. 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:

TypeHow to StoreHow LongReheating Tips
Leftover CurryStore in an airtight container in the refrigerator.Up to 2 daysWarm 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 freezerReheat base until bubbling, then add water and fish to finish cooking.
Seared FishYou can sear the fish earlier in the day, cool it, and store in the fridge.Up to 1 dayDrop 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!

Photo of author

Maya Marin

Maya Marin, California-based founder of MyFishRecipes.com, shares simple, flavor-forward seafood recipes that make fish fun, foolproof, and satisfying for home cooks.

Leave a Comment

Recipe rating 5 Stars 4 Stars 3 Stars 2 Stars 1 Star

You'll Also Love