A mouthwatering fish biryani (traditionally known as machi biryani) to complement any celebration! It’s a layered Basmati rice dish made with spicy haddock fish fillets and uses the “dum” method to create a truly unique and flavourful meal. This recipe is high in protein and packed with fiber, using less oil and lots of nutritious ingredients, like spices, tomatoes, and pepper to create a nourishing recipe. It has a mild spice level.

peeking through plant leaves overlooking a tray of yellow-coloured rice topped with fish fillets and garnished with mint.

“I’d posted a few months ago about how much I enjoyed this dish. Since then I’ve cooked it a number of times, and I’ve ordered Biryani at Dishoom in London’s West End and at Shanti on Boston’s Dorchester Avenue. Both were excellent, but this recipe with the layered haddock is better.” ~Eugene Gallaghar

May I just say—this might be one of my all-time favorite rice dishes? A seafood biryani that layers pan-seared spicy fish over a zingy tomato masala, all nestled between delicate, fluffy Basmati rice tiers. Bold flavors, vibrant spices—how can you possibly resist?

As a South Asian dietitian, I believe that eating well isn’t about restriction—it’s about balance. That means enjoying cultural favorites like biryani in a way that supports our health without sacrificing tradition. This easy fish biryani recipe is proof that diabetes-friendly and heart-healthy meals can still be rich, flavorful, and deeply satisfying.

And if you’re as big a fan of flavor-packed seafood dishes as I am, you might also love my Tandoori Salmon Fish Tikka—perfectly spiced and charred to smoky perfection—or these Pan-Fried Basa Fish Fillets, a quick and easy option for weeknight dinners.

Because at the end of the day, food isn’t just fuel—it’s connection. The act of gathering, sharing, and celebrating over a steaming, spice-infused biryani is one of the greatest joys of our culture. And that? That’s something to savor—guilt-free.

I can confidently say this biryani is a dish worth celebrating—whether it’s Ramadan and Eid, a birthday, or just a Thursday that needs a little something special.

Traditionally made with lamb, beef, or chicken, this version switches things up with perfectly spiced, pan-seared fish. It’s a meal that’s both comforting and exciting, the kind that brings everyone to the table, plates piled high, savoring every bite.

But for me, it’s more than just a recipe. It’s a taste of childhood, of moments spent with my lovely granny, Amma—her hands effortlessly layering rice and masala, filling the kitchen with warmth and the most incredible aromas.

Flatlay of yellow-coloured rice with fillets of haddock embedded in it. Topped with mint and lime slices. There is also a decorative traditional scarf arranged around the tray.

Nutrition Highlights

This slow-cooked biryani is nutritionally balanced and made with whole food ingredients. This dish is:

  • High in lean protein, thanks to the haddock.
  • A source of fiber, with the addition of tomatoes and bell peppers.
  • Rich in heart-healthy fats, from extra virgin olive oil.
a close up perspective shot of yellow coloured rice with pieces of fish embedded in it.

What You’ll Need for This Flavor-Packed Biryani

This dish is all about layers—fragrant rice, spiced haddock fillets, and a slow-cooked masala that brings everything together.

display of ingredients in different sized ramekins and bowls. The ingredients are mostly spices with a few vegetables, fish, rice and herbs.

The Biryani Masala (Spiced Tomato Sauce)

  • Olive oil – The base that lets the spices bloom.
  • Whole spices – A mix of cumin seeds, cinnamon, bay leaves, green and black cardamom infuse deep flavor.
  • Garlic & ginger – The powerhouse duo for a rich, aromatic base.
  • Onions & tomatoes – Cooked down until soft and jammy, the key to any great biryani masala.
  • Dried plums – A sweet contrast to the bold, warming spices.
  • Ground spices – Turmeric, garam masala, and red chili powder add warmth and heat.
  • Bell peppers – Adds freshness and a little crunch to the mix.

The Saffron-Infused Milk

  • Oat milk – Any other type will work well.
  • Saffron strands – Steeps in the milk for that signature golden color and delicate floral aroma.

The Fish

  • Haddock fillets – A firm, flaky fish that holds up well in layers.
  • Simple spices – A mix of red chili powder, ginger powder, and sea salt brings just the right amount of flavor.
  • Olive oil – To sear the fillets so they stay tender inside.

The Rice

  • Basmati rice – Always light, fluffy, and aromatic—perfect for biryani.
  • Water – Just enough to cook the grains so they stay separate, not mushy.

The Finishing Touch

Fresh mint – A bright, cooling contrast to the spices.

    Making Fish Biryani at Home

    Once you’ve prepped all your ingredients, it’s time to start layering the flavors that make this dish truly special. Follow these steps for a seamless cooking process:

    Bake (Dum) the Biryani

    Place the pot in the preheated oven and bake for 20 minutes. This will let the flavors meld and the rice finish cooking, creating that classic dum-style effect.

    You can find the complete ingredient list, along with detailed instructions, in the recipe card below.

    Tip for the Newbie Cook

    Sealing the pot properly is key to a flavor-packed dum biryani. Traditional methods include using dough to lock in steam or covering the pot with a damp cloth napkin before placing the lid on top. I personally rely on my trusty cast iron pot, which retains heat beautifully and creates a natural seal—no extra steps needed!

    Food Safe Storage

    I know leftovers are a big win—especially when it comes to biryani! If you’ve used frozen fish, store any extras in an airtight container in the fridge for up to 3 days. When ready to enjoy, gently reheat on the stovetop over low heat or in short microwave bursts to keep the flavors and textures just right.

    If you try this recipe, I’d love to hear your feedback! Drop your rating, leave a comment, and be sure to tag me on Instagram @DesiliciousRD! Seeing your creations truly makes me smile!

    Desi~liciously Yours, Shahzadi
    RD Approved Badge - Staying Power
    peeking through plant leaves overlooking a tray of yellow-coloured rice topped with fish fillets and garnished with mint.
    4.67 stars (12 reviews)

    Get the Recipe:

    Homemade Fish Dum Biryani with Haddock

    Prep Time: 20 minutes
    Cook Time: 40 minutes
    Total Time: 1 hour
    Yield: 6 people
    A mouthwatering fish biryani (traditionally known as machi biryani) to complement any celebration! It's a layered Basmati rice dish made with spicy haddock fish fillets and uses the "dum" method to create a truly unique and flavourful meal. This recipe is protein-rich and packed with fibre, using less oil and lots of tomatoes and pepper to create a nutritious recipe.

    Ingredients
      

    Biryani sauce (masala)

    • 2 tbsp olive oil, extra virgin
    • tbsp cumin seeds
    • 1 cinnamon stick, large
    • 3 bay leaves
    • 10 green cardamoms, seeds only, crushed
    • 3 black cardamoms, seeds only, crushed
    • tbsp garlic, fresh, grated or crushed
    • 2 tbsp ginger, fresh, finely chopped
    • 2 onions, small, thinly sliced
    • 3 tomatoes, medium size, on the vine variety, washed and cut into small chunks
    • 6 dried plums, small
    • 2 tsp tumeric
    • 2 tsp garam masala
    • tsp red chilli powder, sweet mild variety, adjust to taste
    • 2 tsp salt, sea salt
    • 1 bell pepper, orange or red, washed and cut into small cubes

    Saffron milk

    • 2 tbsp oat milk, unsweetened
    • tsp saffron

    Haddock fish

    • 2 tsp red chilli powder, sweet mild variety, adjust to taste
    • 1 tsp ginger powder
    • tsp salt, sea salt
    • 800 g haddock, 5 frozen fillets, thawed, cut into medium pieces, thoroughly dried. Could use fresh.
    • 2 tbsp olive oil, for pan frying haddock fish

    Basmati rice

    • 2 cups basmati rice, washed thoroughly, drained
    • 6 cups water, for boiling rice

    Garnish

    • ½ cup mint, fresh, washed, finely chopped

    Instructions
     

    Saffron milk

    • In a small bowl, combine the saffron and milk. Set aside, allowing the saffron to infuse its color and delicate aroma into the milk.

    Biryani masala (spiced tomato sauce)

    • Heat 2 tablespoons of olive oil in a large, heavy-bottomed pot over low to medium heat. Add the cumin seeds, cinnamon stick, bay leaves, and crushed green and black cardamoms. Let the spices sizzle for 30 seconds to 1 minute, stirring occasionally, until fragrant—but be careful not to burn them.
    • Add the garlic, ginger, and onions, stirring frequently. Sauté until the onions turn golden brown. This step deepens the flavor base of the biryani.
    • Stir in the chopped tomatoes, dried plums, turmeric, garam masala, red chili powder, and salt. Cook over medium heat, uncovered, stirring occasionally, until the tomatoes break down and the mixture becomes thick and jammy.
    • Finish the masala by adding the chopped bell pepper and cooking for another 2 minutes. Turn off the heat and transfer the sauce to a large bowl. If your pot is oven-safe, set it aside for assembling the dum biryani.

    Spiced haddock fillets

    • While the masala is cooking, pat the haddock fillets dry to help them sear properly. In a small bowl, combine the salt, red chili powder, and ginger powder. Sprinkle this mixture evenly over both sides of the fish fillets, pressing gently so the seasoning adheres.
    • Heat 1 tablespoon of oil in a large frying pan over medium-high heat. Carefully place half the fillets in the pan, making sure they don’t overcrowd. Sear for about 30 seconds per side—just enough to lock in the spices without fully cooking the fish. Flip them once, then immediately transfer to a plate. Repeat with the remaining fillets and set them aside.

    Basmati rice

    • Preheat the oven to 380°F (193°C).
      In a medium saucepan, bring 6 cups of water to a rolling boil. Add the basmati rice and cook for 7-8 minutes, stirring occasionally to prevent sticking. The rice should be about 70% cooked—firm but no longer raw.
    • Reduce the heat to medium-high to prevent overflow, then let the rice boil for 1 more minute before draining immediately. This ensures the grains remain light and fluffy after baking.

    Layering and baking the biryani

    • To assemble the biryani, start by layering half the seared fish fillets in the base of the oven-safe pot. Spoon one-third of the parboiled rice over the fish. Spread half of the thick tomato-pepper masala evenly over the rice. Arrange the remaining fish fillets in a single layer. Add half of the remaining rice on top of the fish. Cover with the remaining masala, spreading it evenly. Finish with the last layer of rice, then sprinkle fresh mint over the top.
    • Drizzle the saffron-infused milk over the final rice layer for extra fragrance and richness. Cover the pot with a tight-fitting lid and bake for 20 minutes in the preheated oven.

    Notes

    Cooking Tips & Ingredient Substitutions

    • Best Fish for Biryani: Haddock works beautifully, but you can also use cod, halibut, or kingfish. If using frozen fish, make sure to pat it dry completely before searing.
    • Rice Choice: Authentic biryani requires long-grain basmati rice. Aged basmati gives the best texture. Avoid short-grain rice as it becomes mushy.
    • Spice Adjustments: If you prefer a mild biryani, reduce the red chili powder and add a pinch of ground cinnamon for warmth.

    Storage & Meal Prep

    • Make-Ahead Option: Prepare the biryani masala up to 2 days in advance and refrigerate. You can also parboil the rice a day ahead to speed up the process.
    • Storage: Store leftovers in an airtight container in the fridge for up to 3 days.
    • Reheating: To retain moisture, reheat on low heat with a splash of vegetable stock or water to keep the rice from drying out.

    Serving Suggestions & Pairings

    • What to Serve with Fish Biryani? This pairs well with raita, kachumber salad, or a side of achar (pickle).
    • For a Complete Feast: Pair it with Tandoori Salmon Fish Tikka or Pan-Fried Basa Fish Fillets for an all-out seafood spread.

    Common Mistakes to Avoid

    • Soggy Biryani? Make sure not to overcook the rice—it should be 70% cooked before baking.
    • Fish Falling Apart? Use firm, thick fish fillets and sear them quickly over high heat before layering.

    Nutrition Information:

    Calories: 485kcal (24%)Carbohydrates: 67g (22%)Protein: 28g (56%)Fat: 11g (17%)Saturated Fat: 2g (10%)Polyunsaturated Fat: 2gMonounsaturated Fat: 7gTrans Fat: 1gCholesterol: 72mg (24%)Sodium: 1666mg (69%)Potassium: 868mg (25%)Fiber: 5g (20%)Sugar: 8g (9%)Vitamin A: 1472IU (29%)Vitamin C: 39mg (47%)Calcium: 99mg (10%)Iron: 3mg (17%)

    Keep in mind that the nutritional values provided are approximations and suggestions, and might fluctuate depending on ingredient variations, portion sizes, and recipe adjustments. This nutrition facts table cannot account for your individual needs. Your body — including your hunger and satiety cues — change daily. It’s perfectly fine to eat more or less on different days. Instead of letting food guilt take over, consider mindful eating.

    * Percent Daily Values are based on a 2000 calorie diet.

    Cuisine: Indian, pakistani
    Course: Main
    Did you make this recipe?Mention @desiliciousrd on Instagram or tag #desiliciousrd.