Bengali Fish Curry (Maacher Kalia/Jhol)

Maacher Kalia
Shukanto Das/Wikimedia Commons
Prep: 30 mins
Cook: 45 mins
Total: 75 mins
Servings: 4 to 6 servings
Nutrition Facts (per serving)
618 Calories
38g Fat
24g Carbs
45g Protein
Show Full Nutrition Label Hide Full Nutrition Label
Nutrition Facts
Servings: 4 to 6
Amount per serving
Calories 618
% Daily Value*
Total Fat 38g 49%
Saturated Fat 14g 70%
Cholesterol 116mg 39%
Sodium 109mg 5%
Total Carbohydrate 24g 9%
Dietary Fiber 3g 12%
Protein 45g
Calcium 85mg 7%
*The % Daily Value (DV) tells you how much a nutrient in a food serving contributes to a daily diet. 2,000 calories a day is used for general nutrition advice.
(Nutrition information is calculated using an ingredient database and should be considered an estimate.)

Maacher kalia or maacher jhol is a simple Bengali fish curry that is a favorite in many Indian families.

Maacher means "fish" and kalia or jhol means "in curry or gravy." The most commonly used fish to prepare this dish is a type of freshwater carp or rui maach. If you do not have access to rui maach, you also can use salmon, pomfret, sea bass, red snapper, tilapia, or catfish.

Unlike in other parts of India, Bengali recipes call for the frying of the main ingredient in mustard oil before it is added to the gravy or curry. This is thought to enhance flavors and cause the fish/meat/eggs to absorb the spices in the gravy better.

In some Bengali homes, this frying translates to deep-frying, while in others it means pan-frying. Take your pick depending on your preference.


  • For the Fish:
  • 2.2 pounds/1 kg thickly cut carp steaks (cleaned and scales removed)
  • 1 teaspoon turmeric
  • 1/2 teaspoon salt
  • 1/2 cup mustard or vegetable or canola or sunflower cooking oil
  • For the Gravy:
  • 4 tablespoons mustard or vegetable or canola or sunflower cooking oil
  • 3 medium-sized potatoes, peeled and cut into quarters
  • 1 large bay leaf
  • 5 green cardamom pods, bruised
  • 1/2 teaspoon cumin seeds
  • 1 large onion, ground to a smooth paste in a food processor
  • 1 teaspoon ginger paste
  • 1 teaspoon garlic paste
  • 2 tomatoes chopped very fine
  • 1/2 teaspoon turmeric
  • 1 teaspoon coriander
  • 1/2 teaspoon cumin
  • 2 tablespoons unsweetened yogurt
  • 1 1/2 to 2 cups hot water
  • 1/4 cup fresh cilantro, chopped very fine

Steps to Make It

Make the Fish:

  1. Gather the fish ingredients.

  2. Pat each piece of fish dry with a paper towel.

  3. Lay fish in a flat dish. Sprinkle the turmeric and salt over the fish and mix well to ensure every piece of fish is well coated with the marinade. Set aside for 30 minutes.

  4. When the fish has marinated, set up a frying pan on medium heat, to fry the fish. When the pan is hot, add the cooking oil and heat.

  5. Fry the pieces of fish until each one is golden on both sides. Do not crowd the pan and remember to be gentle with the fish as it cooks quickly and can break easily. When fried, remove to paper towels to drain and reserve for later use.

Make the Gravy:

  1. Gather the gravy ingredients.

  2. Use the same oil (add more if necessary) to pan fry the potatoes till they are half-cooked and golden. Drain and keep aside on paper towels for later use.

  3. If there is any cooking oil left over from the frying (fish and potatoes), use it in this next step. Add more if required.

  4. Heat the cooking oil on medium heat and add the bay leaf, cardamom pods, and cumin seeds. Sauté until the spluttering stops.

  5. Add the onion paste, ginger paste, and garlic paste and fry for 4 to 5 minutes.

  6. Add the tomatoes, turmeric, coriander (dhania), cumin (jeera) and yogurt. Stir to mix well. Fry this spice mixture until the oil begins to separate from it forming a sheen on top of the mixture. This could take up to 10 minutes.

  7. Add 1 1/2 to 2 cups of hot water and the previously fried potatoes to this mixture. Bring to a boil and then reduce the heat to a simmer. Cook until the potatoes are done.

  8. Now add the previously fried pieces of fish to the gravy and stir gently. Cook for another 4 to 5 minutes to reheat the fish.

  9. Turn off the heat and garnish the dish with the fresh, chopped cilantro leaves. Serve with freshly prepared plain rice.