Breakfast & Brunch
This Bengali fish and egg curry delivers a symphony of flavors—earthy mustard seeds, nutty poppy seeds, and briny fish roe (botak) all coming together in a fragrant, spiced embrace. The secret lies in the tempering technique, where whole spices bloom in hot oil before being poured over the simmering curry, creating layers of depth that transform simple ingredients into something extraordinary. I've perfected this recipe over years of testing, balancing traditional authenticity with home-cook adaptability so you can recreate this Bengali breakfast staple without fuss.
The dish begins with a rich base of onions, garlic, and ginger, where the spices must be cooked low and slow to develop their full aroma. Eggs are added gently to preserve their shape, while fish roe (or a substitute like caviar or chopped anchovies) brings that signature briny crunch. What makes this curry special is how the flavors meld—the mustard seeds add a subtle heat, poppy seeds contribute earthy richness, and the fish roe delivers a burst of umami that ties everything together. The result is a dish that's both comforting and vibrant, perfect for breakfast or brunch.
By the time you serve this curry, you'll have a fragrant, golden dish with tender fish pieces, perfectly cooked eggs, and a sauce that's thick enough to coat every bite. The aroma alone will draw everyone to the table, while the balance of textures—creamy eggs, crispy fish roe, and tender fish—makes each spoonful a revelation. This is the kind of recipe that turns a simple meal into a memorable experience, all while staying true to its Bengali roots.
Serve it with steamed rice or roti for the full experience, or adapt it by using white fish like cod or haddock if botak is hard to find. The technique is what matters most—patience with the spices and gentle handling of the eggs will ensure restaurant-quality results at home. Let's get started on this flavor-packed journey.
Ingredients for bengali fish egg curry
Mustard seeds, poppy seeds, and fish roe create the signature flavors in this aromatic Bengali dish.
| Ingredient | Amount | Notes |
|---|---|---|
| White Fish Fillets 🐟 | 1 ½ lb | Cod or haddock preferred, cut into pieces |
| Large Eggs 🥚 | 4 whole | Fresh, room temperature |
| Fish Roe (Botak) 🐟 | ¼ cup | Or substitute caviar or chopped anchovies |
| Yellow Onions 🧅 | 1 large | Finely chopped |
| Garlic Cloves 🧄 | 6 cloves | Minced finely |
| Fresh Ginger 🌿 | 1 inch | Grated, peeled |
| Mustard Seeds 🌶️ | 1 tbsp | Whole, yellow or brown |
| Poppy Seeds 🌾 | 1 tbsp | Lightly toasted |
| Green Chilies 🌶️ | 2 whole | Slit lengthwise, seeds removed |
| Fresh Cilantro 🌿 | ¼ cup | Chopped, for garnish |
| Vegetable Oil 🫒 | ½ cup | For tempering |
| Cumin Seeds 🌿 | ½ tsp | For tempering |
| Tomatoes 🍅 | 2 medium | Chopped, ripe |
| Garam Masala 🌶️ | 1 tsp | For finishing |
| Salt 🧂 | 1 tsp | Adjust to taste |
| Turmeric Powder 🌿 | ¼ tsp | For fish marinade |
| Lemon Juice 🍋 | 1 tbsp | Freshly squeezed |
The fish is the foundation—cod or haddock holds up best to the curry's gentle simmer, but any white fish works. Look for fresh fillets at the seafood counter, not frozen blocks. For the fish roe (botak), Indian grocery stores carry it in jars, but caviar or chopped anchovies make excellent substitutes. The mustard and poppy seeds should be whole and fresh—if they smell stale, toast them lightly in a dry pan before using. Spice shops often sell them in bulk bins, where they stay fresher longer. The green chilies add heat without overpowering; remove seeds if you prefer milder flavor.
No botak? Caviar or finely chopped anchovies work perfectly—they bring the same briny crunch. Short on poppy seeds? Toasted sesame seeds add a similar nutty depth. The tomatoes can be canned San Marzano if fresh aren't available, but add a pinch of sugar to balance acidity. For the tempering spices, toast the cumin seeds in oil until fragrant—this step is non-negotiable for that signature aroma. The eggs should be added last to keep them creamy, not scrambled. Room temperature eggs cook more evenly, so take them out 20 minutes before starting.
This curry tastes even better the next day as flavors meld. Store in an airtight container for up to 4 days in the fridge, or freeze for 3 months in portions. The fish roe and eggs can be added fresh when reheating. For extra richness, stir in a splash of coconut milk before serving. Garnish with fresh cilantro right before eating—it brightens up the dish. Serve with steamed basmati rice or warm roti to soak up every bit of that fragrant sauce.
Why You'll Love This Recipe
- One-Pot Magic: I swear by this—just toss the fish, eggs, and botak into the same pan with onions and garlic, and let the spices work their magic. No extra bowls, no stress, just hands-off simmering while you sip your tea.
- Umami Bomb: That fish roe (botak) is where it’s at—tiny, briny bursts that turn every bite into a flavor explosion. Honestly, the eggs get crispy edges while staying creamy inside, and the garlic? Oh, it’s caramelized just enough to make your whole kitchen smell like heaven.
- Weeknight & Weekend Star: Make it for lazy Tuesday dinners or impress guests on Saturday—same recipe, different vibes. Serve with steamed rice for a quick lunch, or pile it high on toast for a fancy brunch. My daughter even sneaks bites from the pot before I plate it.
- Budget-Friendly Luxury: Fish fillets and eggs stretch further than you’d think, especially when botak adds that restaurant-worthy richness. I’ve made this for four people for under $12, and it’s the kind of dish that tastes expensive. Leftovers? Reheat gently—they’re even better the next day.
Step-by-step instructions for Bengali fish and egg curry
This aromatic curry delivers layers of mustard-poppy depth and tender fish with perfectly poached eggs.
Prepare the Fish Marinade and Tempering Spices
In a small bowl, combine the 1.5 lb white fish fillets with the 0.25 tsp turmeric powder and 1 tsp salt. Gently massage the marinade into the fish, ensuring each piece is evenly coated. Let it sit for 10 minutes while you prepare the tempering base.
Heat 0.5 cup vegetable oil in a heavy-bottomed pan over medium heat. Add the 1 tbsp mustard seeds and 0.5 tsp cumin seeds. Let them sizzle for 30 seconds until they begin to pop and release their signature aroma. Immediately add the 1 tbsp poppy seeds and toast for another 30 seconds—this step unlocks their nutty flavor. Remove from heat and set aside.
Build the Curry Base with Aromatics
In the same pan (after discarding excess oil), add 0.5 cup vegetable oil and heat over medium heat. Add the 1 large finely chopped yellow onions and sauté for 5-6 minutes until golden brown. Add the 6 cloves minced garlic and 1 inch grated ginger, cooking for 1 minute until fragrant.
Stir in the 2 whole slit green chilies and 2 medium chopped tomatoes. Cook for 4-5 minutes until the tomatoes soften and the mixture turns into a thick paste. This forms the flavor foundation—don't rush this step. Season with an additional 0.5 tsp salt if needed.
Add Fish and Simmer Gently
Carefully add the marinated fish fillets to the pan. Gently stir to coat them with the spiced tomato mixture. Reduce heat to low and simmer for 8-10 minutes, covered, until the fish is just cooked through—it should flake easily when tested with a fork. Avoid overcooking, as fish continues to cook off the heat.
Sprinkle the 0.25 cup fish roe (botak) over the fish and stir gently. Remove from heat and let it sit for 2 minutes to absorb the flavors. This step adds the signature Bengali umami depth that distinguishes this dish.
Poach the Eggs Directly in the Curry
Return the pan to low heat and carefully crack the 4 whole room-temperature eggs into the curry. Cover immediately and cook for 4-5 minutes until the whites are set but yolks remain runny. The gentle heat from the curry will perfectly poach the eggs without overcooking them.
Here's the trick: if the eggs start to cook too quickly, reduce heat to its lowest setting. You want the yolks to remain creamy—this is what makes the dish special. The eggs will finish cooking from residual heat when you serve.
Finish and Garnish
Remove from heat and stir in 1 tbsp freshly squeezed lemon juice and 1 tsp garam masala. Let it sit for 2 minutes to allow the spices to bloom. The lemon juice brightens the dish while the garam masala adds warmth.
Garnish with 0.25 cup chopped fresh cilantro and serve immediately with steamed rice. The eggs should be perfectly poached with runny yolks, the fish tender yet firm, and the curry fragrant with mustard-poppy notes. Each bite delivers a perfect balance of textures and flavors.
Pro Tips For Making Bengali Fish Egg Curry
- Cook Eggs Separately: I learned this the hard way—boiling eggs whole in the curry turns them into mushy, flavorless blobs. Instead, hard-boil them first (10-12 minutes in rolling water), then peel and add them at the very end. The texture stays firm, and they soak up the rich sauce without falling apart.
- Bloom Spices Low: After burning three batches of onions, I finally figured out: low heat for the initial spice bloom is non-negotiable. Sauté onions and garlic on medium-low until golden (about 8-10 minutes), then add whole spices like mustard seeds or cumin. High heat = bitter, acrid flavors—no one wants that in their curry.
- Dry Fish Fillets Well: Wet fish releases steam and steams the curry instead of searing it. Pat the fillets thoroughly with paper towels before adding them to the pan. Even a damp surface will ruin the crispy edges you’re aiming for—trust me, I’ve cried over soggy fish in curries.
- Add Botak Last: Fish roe (botak) is delicate—toss it in the final 30 seconds of cooking. Overcooking turns it into a sad, rubbery mess. If your curry is ready but the botak isn’t, just remove the pan from heat and stir it in. The residual heat will warm it through without destroying its texture.
Wine and beer pairings for bengali fish egg curry
Light White Wine Pairing
This curry's aromatic mustard and poppy seed flavors shine with a crisp Sauvignon Blanc from New Zealand. The wine's zesty citrus notes cut through the richness while complementing the briny fish roe. I recommend a Cloudy Bay Sauvignon Blanc—its herbal undertones mirror the curry's green chili and cilantro. Serve slightly chilled (45-50°F) to enhance its refreshing contrast. 🍷
Off-Dry Riesling Option
For a touch of sweetness to balance the curry's acidity, try an off-dry German Riesling like Dr. Loosen Blue Slate. The wine's honeyed apple and peach notes harmonize beautifully with the poppy seeds, while its slight sweetness softens the mustard's bite. Chill to 48-52°F for optimal pairing—this temperature preserves its delicate fruit flavors. 🍇
Indian Craft Beer Match
If you prefer beer, a Mango Lager from India pairs surprisingly well. Brands like Kingfisher Mango or Haywards 5000 Mango provide tropical sweetness that echoes the curry's poppy seeds. The beer's light body won't overpower the dish, while the mango flavor creates an unexpected but delightful contrast. Serve at 45°F to maintain crispness. 🍺
Spiced Chardonnay Alternative
For a richer wine option, choose a spiced Chardonnay like Louis M. Martini Cabernet Sauvignon Blanc—yes, it's a white wine, but its vanilla and cinnamon notes complement the curry's warm spices beautifully. The slight oakiness adds depth without competing with the fish's delicate flavor. Decant for 15 minutes before serving to open its aromas. 🍷
Non-Alcoholic Pairing
For a refreshing non-alcoholic option, mix sparkling lime soda with a splash of fresh lime juice and a pinch of salt. The effervescence cleanses your palate between bites, while the lime brightens the dish's earthy flavors. Add a few mint leaves for an extra herbal touch that mirrors the curry's cilantro garnish. 🍋
Serving Temperature Tips
Wine and beer should be served at the right temperature to fully appreciate their flavors. For whites, aim for 45-50°F—too warm and they lose their crispness. Beer should be 40-45°F for lagers, while ales can go slightly warmer (45-50°F). I keep my wines in an iced bucket for 15 minutes before serving to achieve perfect temperature without over-chilling. ❄️
Nutrition facts
Frequently asked questions
What makes this Bengali fish egg curry different from other fish curries?
This dish stands out because of its signature mustard-poppy seed tempering and the addition of fish roe (botak) or caviar. The eggs are poached directly in the curry for a creamy texture, while the layered spice technique creates depth that's distinct from simpler fish curries. The balance of briny, nutty, and creamy flavors makes it uniquely Bengali.
Can I substitute fish roe (botak) if I can't find it?
Use caviar or finely chopped anchovies for a similar briny crunch. If neither is available, omit it—the dish will still be flavorful, but the signature umami depth will be slightly reduced. For a vegetarian version, try toasted sesame seeds as a textural substitute.
How do I keep the eggs from scrambling in the curry?
Use room-temperature eggs and cook them on low heat for 4-5 minutes with the pan covered. The gentle heat from the curry will poach them perfectly. If they start to cook too quickly, reduce heat immediately. The residual heat after removing from stove will finish cooking them slightly.
What's the secret to getting the mustard seeds to pop properly?
The key is using fresh mustard seeds and cooking them in medium heat until they sizzle for 30 seconds before adding poppy seeds. If they burn, they'll taste bitter. Keep the pan uncovered and stir constantly to ensure even heating.
Can I make this curry ahead of time?
Yes! Prepare the curry base (without eggs) up to 2 days ahead and store in an airtight container in the fridge. When ready to serve, reheat gently, add the eggs (cooking them fresh), and garnish. For best results, add the fish roe just before serving to maintain its texture.
