Recipe · Bengali · verified 2026-09-01
Bengali Fish Biryani (Ilish/Hilsa)
A gentle, ghee-forward Bengali fish biryani — hilsa or rui pieces lightly marinated, layered with spiced basmati and finished with saffron, rose and kewra. No chili aggression, all fish perfume.
At a glance
- Heat
- Mild, ghee-rich
- Style
- Bengali
- Total
- ~1 h 15 min
- Method
- Pakki — fish + rice
- Serves
- 4
- Protein
- Fish (hilsa/ilish, rui or firm white fish)
- Signature
- Ghee, saffron + rose + kewra, mustard-oil note
What makes it distinctive
Bengali fish biryani treats the fish with the same restraint as the mutton version — a light marinate, generous ghee, and the fragrance of saffron, rose water and kewra rather than chili. Hilsa (ilish) is the classic fish; rui (rohu) or any firm white fish works. The fish pieces are lightly browned so they hold their shape, then layered for a short dum. It's a quiet, deeply fragrant dish — the "sea" version of the Bengali mushy-and-mutton table.
Ingredients
Fish marinate
- 600 g hilsa (ilish) or rui, cut into steaks/pieces (or firm white fish)
- ½ tsp turmeric
- 1 Tbsp ginger-garlic paste
- ½ tsp red chili powder (very mild)
- 1 tsp mustard powder (the Bengali note)
- 1 Tbsp yogurt
- A little lemon juice
- 1 tsp mustard oil (or neutral oil)
- Salt to taste
The masala base
- 2–3 Tbsp ghee
- 1 large onion, sliced
- 1 tsp ginger paste + 1 tsp garlic paste
- 1 tsp biryani masala (few chilies)
- ½ tsp turmeric
- 1 green cardamom, 2 cloves
- 1 Tbsp mustard oil
Rice
- 3 cups aged long-grain basmati, rinsed + soaked 30 min
- Heavily salted water + bay, cardamom, cinnamon, cloves
- 1 tsp oil
Layering / garnish
- ½ cup warm milk + saffron
- 2 Tbsp ghee
- Fried onions (birista), a little mint + coriander
- 1 tsp rose water + 1 tsp kewra water
Method
- Marinate the fish lightly in turmeric, ginger-garlic, a pinch of chili, mustard powder, yogurt, lemon and a little mustard oil. Rest 20 min. (Don't over-marinate — fish is delicate.)
- Brown the fish lightly: in a little oil/ghee, brown the fish pieces on each side just to set them (2–3 min). They'll finish in the dum.
- Build the masala: in a heavy pot, melt the ghee; fry the sliced onion to deep gold. Add the ginger + garlic pastes, whole spices, masala and turmeric; bloom. Add the mustard oil.
- Nestle in the fish for 2 min so it picks up the masala.
- Parboil the rice to 70% in salted spiced water; drain.
- Layer: fish + masala base → half the rice → saffron milk, ghee, fried onions, rose + kewra, mint → the rest of the rice → ghee, saffron, fried onions.
- Seal + dum on low 15–20 min (fish needs less steam than meat). Rest 10 min.
- Serve lifted from the bottom, with a squeeze of lemon and raita.
Pro tips
- Ghee is the point — use more than you think; a spoonful over the top rice.
- The mustard oil + mustard powder gives the subtle Bengali warmth the other fish biryanis don't have.
- Hilsa is oily and rich; if using lean white fish, add a little more ghee to the layers.
Troubleshooting
- Fish falls apart — over-marinated or browned too long; keep the brown light and the dum short.
- Fishy smell — a little more lemon + mustard oil; cook the masala base properly.
- Mushy rice — parboiled too far.
Variations
- Mutton combo: layer the fish under a mutton masala base for a seafood-and-meat pot (a Bengali celebration dish).
- Kolkata aloo + aanda: add fried potato and egg for the full Bengali table.
- Prawn: swap hilsa for prawns; reduce the brown.
FAQ
- Which fish is best?
- Hilsa (ilish) is the classic Bengali choice — rich and oily. Rui (rohu) or any firm white fish is a good everyday substitute.
- Is it spicy?
- No — it's mild and ghee-forward, like the Bengali mutton version. The flavour is from ghee, saffron, rose/kewra and a touch of mustard oil.
- How long is the dum?
- Short — 15–20 min. Fish finishes fast; over-steaming makes it mushy.