Bengal

Doi Maach

Carp steaks cooked in a mild, fragrant yogurt gravy.

Prep15 minCook25 minTotal40 minServes4DietNon-vegLevelMediumSpice
Doi Maach from Bengal

About this dish

Doi Maach is a hallmark of Bengali festive dining, often served at weddings and formal gatherings. It features thick steaks of Rohu or Katla carp bathed in a pale, creamy yogurt gravy that is subtly spiced. Unlike many Indian curries, it avoids heavy tomato or onion browning, focusing instead on the delicate balance of tart yogurt and aromatic whole spices.

Ingredients

The Fish

  • 4 thick steaks (500g) Rohu or Katla fish
  • 1/2 tsp Turmeric
  • 1/2 tsp Salt
  • 3 tbsp Mustard oil for frying

The Yogurt Base

  • 200g (1 cup) Thick Yogurt, well-whisked
  • 1 tsp Sugar
  • 1 tbsp Ginger paste
  • 1 tsp Green chilli paste

Whole Spices and Aromatics

  • 2 Green Cardamoms, 2 Cloves, 1 stick Cinnamon
  • 1 Bay leaf
  • 1/2 tsp Kashmiri Red Chilli powder (for color)
  • 1/2 tsp Garam masala powder

Method

  1. 1

    Marinate the fish

    Clean the fish steaks and pat them dry. Rub with salt and turmeric powder, then let them sit for 15 minutes to allow the salt to penetrate the flesh.

  2. 2

    Sear the steaks

    Heat mustard oil in a pan until it smokes. Fry the fish steaks for 2 minutes on each side over medium-high heat until light golden; they should not be deep-fried or crispy, just sealed.

  3. 3

    Infuse the oil

    Remove the fish and in the same oil, add the cardamom, cloves, cinnamon, and bay leaf. Let them crackle and release their oils into the fat for about 30 seconds.

  4. 4

    Aromatic sauté

    Add the ginger and green chilli paste to the oil. Sauté for 1-2 minutes on low heat, ensuring the ginger doesn't burn, until the raw pungency is replaced by a sweet aroma.

  5. 5

    Temper the yogurt

    In a bowl, mix the yogurt with sugar and red chilli powder. Lower the pan heat to the lowest setting and slowly pour in the yogurt mixture while stirring vigorously to prevent curdling.

  6. 6

    Create the emulsion

    Continue stirring the yogurt on low heat until it starts to release oil at the edges. Add half a cup of warm water to create a smooth, flowing gravy.

  7. 7

    Poach the fish

    Carefully slide the seared fish steaks into the bubbling gravy. Ensure they are partially submerged so they can absorb the yogurt's tang.

  8. 8

    Simmer to perfection

    Cover the pan and cook on low heat for 5-7 minutes. The fish should be tender and the gravy should have thickened to a creamy consistency.

  9. 9

    Final flourish

    Sprinkle garam masala and drizzle a teaspoon of ghee over the dish. Turn off the heat and keep it covered to let the steam infuse the fish with the spice aromas.

Notes & variations

  • Always use room-temperature yogurt to minimize the risk of curdling when it hits the hot pan.
  • Do not over-fry the fish; the texture should remain soft and flaky, not chewy.
  • If the yogurt is very sour, increase the sugar slightly to balance the acidity.
  • For a richer version, you can add a tablespoon of cashew paste to the yogurt.

Serve with

Serve with hot, fluffy Basmati rice or a light Ghee Bhat.

Cook's note

Adding a teaspoon of flour to the yogurt before whisking helps stabilize it and prevents the gravy from breaking.

← More from Bengal