Coconut Fish Biryani with Tamarind
Photo by Anil Sharma on Pexels

Coconut Fish Biryani with Tamarind

A layered one-pot rice and fish dish where tender white fish fillets are cooked in a creamy coconut-tamarind sauce, then layered with fragrant basmati rice and steamed together. Infused with warming spices like turmeric, cinnamon, and cardamom, this biryani is tangy, aromatic, and deeply flavorful—a comforting South Indian-style meal.

Prep
20 min
Cook
40 min
Wait
15 min
Total
1 hr 15 min
Makes
4 servings (1 large biryani pot)
Share

Steps

Before you start
  • Measure out all spices and have them ready; you'll work quickly once cooking begins
  • Soak tamarind pulp in ½ cup warm water for 10 minutes, then strain to get tamarind liquid
  • Use fresh or previously frozen white fish (cod, halibut, or mahi-mahi work well)
  1. Toast and cook rice

    • Rinse the basmati rice under cold water until the water runs clear, then drain well.
    • In the 4-quart pot, heat 1 tablespoon (15 ml) of the vegetable oil over medium heat.
    • Add the drained rice and toast it, stirring gently, for 2–3 minutes until it becomes fragrant and slightly translucent at the edges.
    • Pour in 2.5 cups (600 ml) water and bring to a rolling boil.
    • Add 2 of the bay leaves and a pinch of salt.
    • Reduce heat to low, cover the pot with a tight-fitting lid, and simmer until the rice is cooked through and water is absorbed, about 15 minutes.
    • The rice should be tender but still have some firmness (it will cook more when layered with fish).
    • Transfer to a bowl and set aside.
    + Show details

    Ready when: Rice is tender and liquid is fully absorbed; grains are separate

    Tip: Don't overcook the rice—it finishes cooking in the final steam, so it should be just barely tender at this stage.

  2. Brown the onions

    • While the rice cooks, heat 2 tablespoons (30 ml) of the vegetable oil in a medium saucepan over medium-high heat.
    • Add the thinly sliced onions and stir often until they turn deep golden brown, about 10–12 minutes.
    • Watch carefully as they can burn quickly at the end—you want them very caramelized but not blackened.
    • Transfer the browned onions to a paper-towel-lined plate to drain excess oil.
    • Reserve about 1 tablespoon of the oil left in the pan.
    + Show details

    Ready when: Onions are deep golden brown and very fragrant

    Tip: Caramelized onions add sweetness and depth; don't rush this step or use high heat that burns them. Keep the heat steady and stir frequently.

  3. Marinate fish

    • Pat the fish chunks dry with paper towels.
    • In the same medium saucepan with the reserved oil, combine the ginger-garlic paste, turmeric, cumin, cinnamon, crushed cardamom pods, the green chiles, salt, and black pepper.
    • Cook over medium heat, stirring constantly, for 1 minute until very fragrant.
    • Remove from heat and stir in the tamarind liquid and coconut milk to create a marinade.
    • Add the fish chunks and gently fold to coat with the sauce.
    • Let sit for 5 minutes to absorb flavors.
    + Show details

    Ready when: Spices are very fragrant and marinade is well mixed

    Tip: Keep the fish chunks whole during marinating to prevent them from breaking apart; use a gentle hand when folding.

  4. Layer rice and fish

    • Spread half of the cooked rice (about 1.5 cups or 300 g) on the bottom of the clean 4-quart pot.
    • Pour the fish and its entire coconut-tamarind sauce over the rice, spreading it evenly.
    • Top with the remaining half of the rice, pressing gently to create an even layer.
    • Scatter the caramelized onions over the top.
    • Drizzle any oil remaining from the onion cooking over the top layer.
    + Show details

    Ready when: Rice and fish are layered evenly with onions on top

    Tip: Layer gently to keep the rice grains separate and prevent mushing.

  5. Steam the biryani

    • Cover the pot with a tight-fitting lid.
    • If the seal isn't perfect, wrap a damp kitchen towel around the lid edges to trap steam.
    • Place the pot over medium heat and listen for gentle steam to escape from the edges, about 1 minute after you start heating.
    • Once you hear steam, reduce heat to low and continue steaming for 12–15 minutes.
    • The biryani is done when you can see wisps of steam when you slightly lift the lid, and the rice grains at the top are fluffy and separate.
    + Show details

    Ready when: Gentle steam rises from pot; rice is fluffy and separate; fish is opaque and flakes easily when tested with a fork

    Tip: A tight seal is critical—use a damp towel if needed. If you hear violent steam escaping, reduce heat further.

  6. Rest and finish

    • Remove the pot from heat and let it rest, covered, for 2 minutes without disturbing it.
    • This allows any remaining moisture to distribute evenly.
    • Carefully remove the lid (watch out for hot steam) and fluff the rice gently with a fork, breaking up any clumps and mixing in some of the fish pieces without shredding them.
    • Top with fresh cilantro and a squeeze of lime juice if desired.
    • Serve directly from the pot or transfer to a large serving platter.
    + Show details

    Ready when: Rice is fluffy and light; fish breaks into tender chunks

    Tip: Use a gentle hand when fluffing to avoid breaking the fish into shreds; you want distinct chunks visible in the finished dish.

Good to know

Tips
  • Tamarind paste makes a real difference—if you can't find tamarind pulp in the spice or international aisle, check Indian or Southeast Asian markets. A little goes a long way, so don't skip it.
  • For even cooking, keep fish chunks roughly the same size. Smaller pieces may overcook and fall apart during the final steam.
  • If your pot doesn't seal well, the biryani will lose steam and the rice may dry out. Use a damp towel under the lid as insurance.
  • This dish benefits from aromatic spices—buy whole cardamom and cinnamon sticks when possible and lightly crush the cardamom just before cooking for maximum fragrance.
Make ahead

Prepare the tamarind liquid and measure out all spices up to 2 hours ahead. You can also slice and caramelize the onions 1 day in advance, then reheat gently before layering. The fish and rice components are best cooked fresh and assembled just before steaming.

Storage & reheating

Room temperature (if leftovers): Store in an airtight container for up to 2 hours. Refrigerator: Cover and store for up to 2 days; gently reheat on the stovetop over medium-low heat with 2–3 tablespoons of water added, covered, for 8–10 minutes. Freezer: Not recommended, as the fish becomes dry when frozen and thawed.

Substitutions
  • white fish fillets (cod, halibut, or mahi-mahi) → shrimp (large, peeled and deveined) or firm white fish like sea bass. Shrimp will cook faster (reduce final steam time to 8–10 minutes); cooking time for sea bass remains the same.
  • tamarind liquid (from soaked pulp, strained) → 2 tablespoons (30 ml) fresh lemon juice mixed with 1 tablespoon (15 ml) water. The tang will be slightly different—lemon is brighter and less complex than tamarind, but still delicious.
  • unsweetened coconut milk (canned or fresh) → Greek yogurt mixed with ½ cup (120 ml) water. This creates a creamier, tangier sauce; yogurt won't curdle at low heat.
  • green chiles (serrano or jalapeño) → 1 teaspoon (5 g) cayenne pepper or red pepper flakes mixed into the spice paste. You'll lose the fresh chile flavor but retain the heat. Add to taste.

More biryani

See all →

Find more like this

Meal
Dinner
Main ingredient
CodBasmati RiceHalibut
Method
Stovetop
Quick & Easy
One-Pot

Reviews (0)