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)
634 Calories
40g Fat
26g Carbs
42g Protein
Show Full Nutrition Label Hide Full Nutrition Label
Nutrition Facts
Servings: 4 to 6
Amount per serving
Calories 634
% Daily Value*
Total Fat 40g 52%
Saturated Fat 5g 23%
Cholesterol 140mg 47%
Sodium 332mg 14%
Total Carbohydrate 26g 9%
Dietary Fiber 4g 13%
Total Sugars 5g
Protein 42g
Vitamin C 27mg 136%
Calcium 134mg 10%
Iron 5mg 26%
Potassium 1502mg 32%
*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 1/4 pounds (1 kilogram) carp steaks, cleaned and scales removed, thickly cut

  • 1 teaspoon turmeric

  • 1/2 teaspoon salt

  • 1/2 cup mustard oil, vegetable oil, canola oil, or sunflower cooking oil

For the Gravy:

  • 1/4 cup mustard oil, vegetable oil, canola oil, or sunflower cooking oil

  • 3 medium potatoes, peeled and cut into quarters

  • 1 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 plain 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.