Doi Maach is a classic Bengali fish curry from eastern India in which fish is simmered in a spiced yogurt gravy — doi meaning yogurt, maach meaning fish. Steaks of a large freshwater carp such as rohu or catla are rubbed with turmeric, lightly fried, then cooked in a sauce built on whisked yogurt with ginger, a little onion, green chili and warm spices like cardamom, clove and cinnamon. The yogurt makes the curry lighter, paler and gently tangy compared with the region's red, oil-rich fish curries, with a mild background sweetness. It is a dish of feasts and special occasions, served hot over plain steamed rice.
Doi Maach belongs to the wedding-feast (biye bari) cooking of undivided Bengal, the festive repertoire of better-off Bengali households served at celebrations such as the new-year meal and the son-in-law feast. It is closely related to doi ilish, the same treatment given to the prized hilsa, and is most often made with the everyday large carps rohu and catla when hilsa is out of season. No single origin is recorded; the dish reflects the broader South Asian technique of cooking meat and fish in yogurt to tenderise and to lend a mild tang, adapted in Bengal to freshwater river fish and the local taste for a lighter, slightly sweet gravy. It is mustard-oil cooking like most Bengali fish, but the yogurt sets it apart from the chili-and-oil curries such as macher jhol and shorshe ilish.
Pale and glossy rather than fiery red, the gravy clings in a thin, creamy coat around firm pieces of bone-in carp. The first taste is gently tangy from the yogurt, quickly softened by a low sweetness and the warm perfume of cardamom, clove and cinnamon; the chili heat sits well in the background. The fish is tender and just flaking, its lightly fried surface holding it together in the sauce, and the mustard oil gives a faint pungent depth underneath the cream. It is a soft, rounded, comforting curry — eaten warm, spooned generously over plain white rice and mixed in by hand.
Yogurt is the load-bearing ingredient and the main technical hazard. Its proteins and lactic acid gently tenderise the fish, while the acid and the live-culture tang are what make the gravy taste lighter and fresher than an oil-and-onion curry. The danger is curdling: yogurt proteins break and turn grainy if dropped into very hot fat or boiled hard, so the yogurt is whisked smooth first, the pan is taken off high heat before it goes in, and the curry is then kept at a low simmer, never a rolling boil. Frying the fish in turmeric beforehand firms its surface (and the turmeric's curcumin both colours and lightly preserves it) so the pieces hold together rather than disintegrating in the sauce. Mustard oil is heated to smoking first to mellow its raw pungency, and the whole-spice tempering of cardamom, clove and cinnamon releases its aroma into the hot fat before the gravy is built.
Variations
The same method applied to hilsa gives doi ilish, often considered the finest version; with prawns it becomes doi chingri. Cooks differ on the aromatics — some keep it onion- and garlic-free in the older niramish style, others build a fuller onion-ginger base; some add a spoon of fried-onion paste or cashew for a richer, sweeter gravy. A pinch of sugar and a little ghee at the end are common in feast versions. Among the region's fish curries it is the yogurt sibling of the lighter macher jhol (a thin, spiced broth) and the mustard-paste shorshe ilish, and it sits opposite the deep-red, slow-cooked macher kalia served at the same wedding feasts.
On the Palate
Where Doi Maach sits in the Indian flavor cloud
Ingredients
Serves 4How it's made
7 steps · 25 min
- 115 min
Rub the fish steaks with turmeric and salt and let them sit for about 15 minutes.
- 28 min
Heat mustard oil until it just smokes, then lightly fry the fish on both sides until the surface firms and pales-golden; lift out and set aside.
Watch outFry the turmeric-rubbed fish just until the surface firms and pales golden — this sets the flesh so it won't fall apart later in the delicate yogurt gravy.
- 33 min
Whisk the yogurt smooth with a little turmeric and salt so it will not split, and set it ready by the stove.
Watch outWhisk the yogurt dead smooth with a little turmeric first — this is insurance against curdling; lumpy yogurt splits the moment it hits the pan.
- 45 min
In the same oil temper cardamom, clove, cinnamon and a bay leaf, then soften a little grated onion and ginger paste without browning.
- 54 min
Take the pan off high heat, stir in the whisked yogurt and a slit green chili, and warm it through gently so it does not curdle.
- 612 min
Return the fish, add a little warm water if needed, and keep at a low simmer — never a hard boil — until the gravy thickens and coats the fish.
Watch outKeep it at a low simmer once the yogurt is in, never a hard boil — boiling breaks the yogurt proteins grainy and splits the gravy.
- 72 min
Finish with a small pinch of sugar and a spoon of ghee, and serve hot over plain steamed rice.
Archive tool suggestions — not reviewed
These legacy suggestions have not been evidence-reviewed and are not presented as required tools.







