I first tried the Hairy Bikers Fish Curry on a chilly evening when I wanted something warming but not heavy. It delivered perfectly—a fragrant, creamy sauce with tender flakes of white fish that just melt in your mouth. This recipe is a fantastic weeknight option, ready in about 50 minutes from start to finish.
While it’s an approachable dish for most home cooks, a couple of steps need your attention. The key is in the spice paste and the gentle poaching of the fish. Get those right, and you’ll have a stunning curry that feels far more complex than the effort suggests.
What Is Hairy Bikers’ Fish Curry?
This dish is a British take on a classic Indian fish curry, popularised by the beloved cooking duo. It’s not about fiery heat, but a beautifully balanced, aromatic sauce. The blend of toasted spices, coconut milk, and tomato creates a luxurious, fragrant gravy.
What sets it apart is the method of creating a wet spice paste. This technique, common in South Indian cooking, prevents the ground spices from burning and gives the curry its deep, unified flavor base. The result is a comforting, mildly spiced main that’s incredibly satisfying.

Gather These Fresh Ingredients for Hairy Bikers Fish Curry
You’ll find most of these in a well-stocked supermarket. Freshness in the aromatics and your fish makes all the difference here.
For the Aromatic Spice Paste
- 1 medium onion, roughly chopped — This forms the sweet, savory base of the paste. A yellow or white onion works best.
- 3 cloves garlic & 1-inch piece fresh ginger — These are non-negotiable for that essential pungent, warm depth. Please use fresh, not powdered.
- 1 fresh green chili — It provides a gentle background warmth. Remove the seeds completely if you’re sensitive to spice.
- Ground coriander, cumin, turmeric & optional cayenne — This quartet builds the classic curry flavor. Toasting them in the paste unlocks their oils.
- 2 tbsp water — This little bit of liquid is crucial for getting your blender to form a smooth, emulsified paste.
For the Tempering & Sauce
- 2 tbsp vegetable oil or ghee — Ghee will add a wonderfully nutty, authentic flavor, but a neutral oil is fine.
- 1 tsp black mustard seeds & 12-15 fresh curry leaves — This is the tempering, or tadka. It’s the fragrant, popping start that defines the dish’s aroma.
- 1 (14 oz) can diced tomatoes — Their acidity balances the rich coconut milk. Use the juices from the can, too.
- 1 (13.5 oz) can full-fat coconut milk — Full-fat is essential for a creamy, luscious sauce that won’t split or taste watery.
- Fine sea salt & black pepper — Season in layers. You’ll add salt with the sauce and again lightly on the fish.
For the Fish & Finish
- 1 1/2 lbs firm white fish fillets (cod, haddock, halibut) — Look for thick, fresh fillets. Their firm texture holds up beautifully to poaching.
- 1 tbsp fresh lime juice — Added right at the end, its bright acidity lifts and defines all the other flavors.
- 1/4 cup fresh cilantro — The fresh, citrusy garnish makes the dish look and taste complete.
Detailed Step-by-Step Instructions to Make Hairy Bikers Fish Curry
The process flows logically from paste to poaching. Follow these steps for a foolproof result.
- Blend the Spice Paste — Combine all paste ingredients in your blender. Process until completely smooth and vibrant. A lumpy paste won’t fry evenly.
- Temper the Whole Spices — Heat the oil in a large, deep pan over medium heat. Add the mustard seeds and curry leaves. Cook just until the seeds pop—about 45 seconds. Don’t let them burn.
- Fry the Paste — Immediately add the blended paste. Cook for 6-8 minutes, stirring often. You’re looking for the raw onion smell to vanish and the oil to separate at the edges.
- Build the Tomato Base — Pour in the canned tomatoes with their juices. Scrape the pan well. Simmer for 5 minutes to let the tomatoes break down and deepen the sauce.
- Add Coconut Milk and Simmer — Stir in the coconut milk, salt, and pepper. Bring it back to a very gentle simmer for 5 minutes. Avoid a rolling boil to keep the sauce from separating.
- Prepare the Fish — Pat the fish chunks thoroughly dry with paper towels. This is critical for a clean poach, not a steam. Season lightly with a pinch of salt.
- Poach Gently — Nestle the fish into the sauce in a single layer. Cover the pan and cook on low for 6-8 minutes. Do not stir—just shake the pan. The fish is done when opaque and flaky.
- Finish and Rest — Turn off the heat. Drizzle with lime juice and fold in half the cilantro. Let it sit, covered, for 3-4 minutes before serving to let the fish absorb the flavors.

Common Mistakes and How I Fixed Them
My first attempt was a learning curve. The fish was tough and the sauce a bit grainy. Here’s what I got wrong.
- Rushing the Paste Fry — I didn’t cook the blended mixture long enough. The raw onion taste lingered. Now I wait for the oil to separate, which signals the moisture is gone.
- Overcrowding the Pan — I piled the fish chunks on top of each other. The ones on the bottom overcooked while the top ones were raw. A single layer is non-negotiable.
- Stirring the Poaching Fish — I couldn’t resist giving it a stir. This broke the delicate chunks apart. Gently shaking the covered pan is the only motion needed.
- Using Light Coconut Milk — I once grabbed the wrong can. The sauce was thin and lacked richness. Full-fat coconut milk is essential for the proper texture.
- Skipping the Dry Step — I added damp fish to the sauce. It released water and made the gravy runny. Patting the chunks bone-dry is a game-changer.
- Boiling the Coconut Sauce — A vigorous simmer after adding the coconut milk caused it to separate slightly. A gentle bubble is all you need.
What Pairs Perfectly with Hairy Bikers’ Fish Curry
This curry is a wonderful centerpiece. These sides turn it into a complete, satisfying meal.
- Steamed Basmati Rice — The classic choice. Its light, fluffy grains soak up the creamy sauce perfectly.
- Warm, Buttery Naan — Use it to scoop up every last bit of gravy from your bowl. It’s messy and wonderful.
- A Simple Cucumber Raita — A cool, yogurt-based side provides a refreshing contrast to the warm spices.
- Lime Wedges — An extra squeeze of fresh lime juice just before eating brightens each bite.
- Steamed Greens — Try tender spinach or green beans stirred in at the end for a pop of color and veg.
- Mango Chutney — A small spoonful on the side adds a sweet and tangy counterpoint.
Pro Tips for Making Hairy Bikers Fish Curry
These small tweaks, learned from repeated testing, will elevate your results from good to great.
- Fresh Curry Leaves Are Key — If you can find them, use fresh. Their citrusy, aromatic flavor is irreplaceable. Dried leaves lack punch.
- Cut Uniform Fish Chunks — Aim for 1.5-inch pieces. Similar sizes ensure everything finishes poaching at the same time.
- Don’t Skip the Resting Time — Letting the curry sit off the heat for a few minutes allows the fish to finish cooking gently and absorb more flavor.
- Toast Your Spices — For an even deeper flavor, lightly toast the ground coriander and cumin in a dry pan before adding them to the blender.
- Use a Deep Skillet — A Dutch oven or deep sauté pan gives you plenty of room to fry the paste and nestle in the fish without splatter.
- Garnish Generously — The fresh cilantro isn’t just decoration. Its bright, herbal note cuts through the richness of the sauce.
- Taste Before Serving — After adding the lime juice, give the sauce one final taste. You might want another pinch of salt or a squeeze of lime.
Inspiring Variations of Hairy Bikers Fish Curry
Love the base recipe? Here are some easy ways to make it your own.
- Swap the Protein — Try large, raw prawns or scallops. Add them in the last 3-4 minutes of cooking until just opaque.
- Add Vegetables — Stir in a cup of diced peppers or cauliflower florets when you add the tomatoes to make it heartier.
- Change the Heat Level — For more kick, leave the seeds in the green chili or add an extra half teaspoon of cayenne to the paste.
- Use Different Fish — Salmon or monkfish are excellent, sturdy alternatives. Their richer flavors stand up well to the spices.
- Make it Creamier — Stir in a couple of tablespoons of plain Greek yogurt or cream after turning off the heat for extra tang and richness.
- Infuse with Lemon — Add a few strips of lemon zest to the sauce while it simmers, then remove them before serving for a citrusy fragrance.
How to Store Hairy Bikers’ Fish Curry Properly
This dish is best fresh, but leftovers can be enjoyed with a little care.
- Cool It Completely — Let the curry come to room temperature before storing. Putting hot food in the fridge raises the internal temperature.
- Airtight Container is Essential — Transfer leftovers to a sealed container. This prevents odors and keeps the fish from drying out.
- Refrigerate Promptly — Store it in the fridge within two hours of cooking. It will keep well for up to two days.
- Freezing is Not Recommended — The coconut sauce may separate, and the delicate fish will become watery and tough when thawed.
- Portion for Easy Lunches — Store single servings with a portion of rice in separate containers for a quick, delicious next-day meal.
Smart Reheating Tips for Hairy Bikers Fish Curry
Gentleness is the rule. You want to warm the curry without further cooking the fish.
- Stovetop Method — Gently reheat in a saucepan over low heat. Stir occasionally and only until warmed through. Never let it boil.
- Microwave Method — Use medium power in 30-second intervals. Stir gently between each burst to distribute heat evenly.
- Add a Splash of Liquid — If the sauce seems too thick upon reheating, stir in a tablespoon of water or coconut milk to loosen it.
FAQs
Can I make Hairy Bikers Fish Curry ahead of time?
You can make the sauce base (through step 5) a day ahead. Cool, cover, and refrigerate. Gently reheat the sauce before adding and poaching the fresh fish. This preserves the fish’s perfect texture.
What’s the best fish to use?
You need a firm, white fish that won’t fall apart during poaching. Cod, haddock, and halibut are ideal. Avoid flaky varieties like tilapia or sole.
My sauce split after adding coconut milk. What happened?
This usually means the heat was too high. Coconut milk can separate if boiled vigorously. Always simmer it gently. If it does split, a vigorous whisk can sometimes bring it back together.
Can I freeze Hairy Bikers Fish Curry?
I don’t recommend it. The coconut sauce is likely to separate, and the delicate poached fish will become mushy and watery when thawed and reheated.
I can’t find fresh curry leaves. What can I use?
The recipe suggests one bay leaf as a substitute, but the flavor is different. If you have an Asian grocery nearby, it’s worth seeking them out—they freeze beautifully for future use.
How long does it last in the fridge?
Store leftovers in an airtight container. They will be good for up to two days. The fish texture is best within the first 24 hours.
Nutritional Value
Based on one serving (a quarter of the recipe), without rice or other sides.
- Calories: 385
- Protein: 32g
- Fat: 25g
- Carbohydrates: 12g
- Fiber: about 3g
- Sugar: 5g
- Sodium: around 720mg
Wrapping Up
This recipe has become a reliable favorite in my kitchen for good reason. It’s fragrant, satisfying, and deceptively simple once you understand the process. The combination of creamy coconut, tangy tomato, and warm spices is just magical.
I hope you give the Hairy Bikers Fish Curry a try. It’s the kind of dish that impresses guests but doesn’t tie you to the stove all night. Serve it with some fluffy rice, and you have a perfect, comforting dinner.
PrintHairy Bikers Fish Curry
A fragrant, mildly spiced fish curry with tender white fish in a creamy coconut and tomato sauce. The blend of aromatic spices creates a complex, warming flavor without overwhelming heat, perfect served over steamed basmati rice.
- Prep Time: 25
- Cook Time: 25
- Total Time: 50
- Yield: 4 1x
- Category: Main Course
- Method: Stovetop
- Cuisine: Indian
Ingredients
- For the Spice Paste:
- 1 medium onion, roughly chopped (approx. 1 cup)
- 3 cloves garlic, peeled
- 1-inch piece fresh ginger, peeled and roughly chopped
- 1 fresh green chili, stem removed (seeds removed for milder heat)
- 1 tbsp ground coriander
- 2 tsp ground cumin
- 1 tsp ground turmeric
- 1/2 tsp cayenne pepper (optional, for extra heat)
- 2 tbsp water
- For the Curry:
- 2 tbsp vegetable oil or ghee
- 1 tsp black mustard seeds
- 12–15 fresh curry leaves (or 1 bay leaf as substitute)
- 1 (14 oz) can diced tomatoes, undrained
- 1 (13.5 oz) can full-fat coconut milk
- 1 tsp fine sea salt, plus more to taste
- 1/4 tsp freshly ground black pepper
- 1 1/2 lbs firm white fish fillets (such as cod, haddock, or halibut), skin removed, cut into 1.5-inch chunks
- 1 tbsp fresh lime juice
- 1/4 cup fresh cilantro, roughly chopped
- For Serving (optional):
- Steamed basmati rice
- Lime wedges
- Naan bread
Instructions
- Prepare the spice paste: In a blender or food processor, combine the chopped onion, garlic, ginger, green chili, ground coriander, cumin, turmeric, cayenne (if using), and 2 tbsp water. Blend on high until a completely smooth, vibrant yellow paste forms, scraping down the sides as needed. This wet paste will fry evenly and form the flavor base of your curry, preventing the ground spices from burning.
- Temper the spices: Heat the vegetable oil or ghee in a large, deep skillet or Dutch oven over medium heat for 1 minute. Add the black mustard seeds and curry leaves. Cook for 30-45 seconds, until the mustard seeds begin to pop and dance and the curry leaves become fragrant. This process, called tempering, releases essential oils and intensifies the aroma of the spices.
- Cook the spice base: Immediately add the blended spice paste to the hot oil. Cook, stirring frequently, for 6-8 minutes. The mixture will sizzle, darken slightly in color, and the raw onion smell will disappear, replaced by a deep, toasted aroma. The oil may start to separate from the paste around the edges—this is a sign the moisture has cooked out and the flavors have concentrated.
- Build the sauce: Pour in the can of diced tomatoes with their juices and stir well, scraping up any browned bits from the bottom of the pan. Bring to a gentle simmer and cook for 5 minutes, stirring occasionally, allowing the tomatoes to break down and meld with the spices. This step develops a rich, savory depth.
- Add coconut milk and season: Reduce the heat to medium-low. Stir in the full-fat coconut milk, 1 tsp salt, and black pepper. Bring the sauce back to a very gentle simmer—do not boil vigorously once the coconut milk is added, as it can cause separation. Let it simmer gently for 5 minutes to allow the flavors to marry. Taste and adjust salt if needed.
- Prepare the fish: While the sauce simmers, pat the fish chunks completely dry with paper towels. This is crucial; any surface moisture will steam the fish and dilute the sauce, preventing a clean, flaky texture. Season the fish lightly with a pinch of salt.
- Poach the fish: Gently nestle the seasoned fish chunks into the simmering sauce in a single layer. Spoon a little sauce over the top of each piece. Cover the pan with a lid and cook over low heat for 6-8 minutes. Do not stir; instead, gently shake the pan occasionally. The fish is done when it turns opaque white and flakes easily with a fork at the thickest part. Overcooking will make it tough.
- Finish and serve: Turn off the heat. Drizzle the fresh lime juice over the curry and gently fold in half of the chopped cilantro. The lime juice brightens all the flavors. Let the curry rest, covered, for 3-4 minutes off the heat; this allows the fish to finish cooking gently and absorb more flavor. Garnish with the remaining cilantro and serve immediately over steamed basmati rice, with lime wedges on the side.
Notes
Storage: Cool completely and store in an airtight container in the refrigerator for up to 2 days. Freezing is not recommended as the coconut sauce may separate and the fish texture will become watery upon thawing. Reheating: Gently reheat in a saucepan over low heat, stirring very occasionally, just until warmed through. Do not boil. Alternatively, microwave in 30-second intervals on medium power, stirring between intervals.
Nutrition
- Calories: 385
- Sugar: 5g
- Sodium: 720mg
- Saturated Fat: 17g
- Carbohydrates: 12g
- Fiber: 3g
- Protein: 32g
- Cholesterol: 73mg
Keywords: hairy bikers fish curry, fish curry recipe, Indian fish curry, coconut fish curry, weeknight dinner, white fish curry, mild curry, spiced fish, easy curry, family meal, one-pot curry, creamy tomato sauce

