Quick Recipe Version (TL;DR)
Quick Ingredients
- 450 g smoked haddock fillets (undyed if possible), skin-on
- 750 ml whole milk (3 cups)
- 250 ml water (1 cup)
- 30 g unsalted butter (2 tbsp)
- 1 large leek (about 200 g), white and light green only, thinly sliced
- 400 g floury potatoes (about 3 cups), peeled and 1.5 cm diced
- 1 bay leaf + 6 whole black peppercorns
- 2 tbsp chopped flat-leaf parsley
- 1/4 tsp kosher salt, plus more to taste
- 1/2 tsp freshly ground black pepper, plus more to finish
- Optional: 1–2 tsp lemon juice
Do This
- 1. Poach fish: In a pot, combine milk, water, bay leaf, and peppercorns. Add haddock. Bring to a bare simmer (about 185°F/85°C) and poach 5–7 minutes. Lift fish out; strain and reserve the hot milk.
- 2. Sweat leeks: Melt butter over medium-low. Cook leeks with a pinch of salt 6–8 minutes, until soft but not browned.
- 3. Simmer potatoes: Add reserved hot milk and potatoes. Maintain a gentle simmer (no boil) 12–15 minutes, until very tender.
- 4. Flake fish: Remove skin and any bones; flake into bite-size pieces.
- 5. Thicken: Mash some potatoes against the pot side to thicken. Stir in haddock; simmer 2 minutes. Season with 1/4–1/2 tsp salt and 1/2 tsp black pepper.
- 6. Finish: Stir in parsley and optional lemon. Rest off heat 3 minutes. Serve with extra parsley and plenty of black pepper.
Why You’ll Love This Recipe
- Classic Scottish comfort: smoky haddock, creamy broth, and tender potatoes in every spoonful.
- Simple technique: gentle poaching and a potato mash thicken the chowder—no flour needed.
- Balanced richness: made with whole milk (not heavy cream) for a silky, light feel.
- Weeknight-friendly: ready in under an hour with straightforward steps.
Grocery List
- Produce: 1 large leek, 400 g floury potatoes, flat-leaf parsley, optional lemon
- Dairy: Whole milk, unsalted butter
- Pantry: Smoked haddock, bay leaf, black peppercorns, kosher salt, ground black pepper
Full Ingredients
For the Chowder
- 450 g smoked haddock fillets (undyed if possible), skin-on
- 750 ml whole milk (3 cups)
- 250 ml water (1 cup)
- 30 g unsalted butter (2 tbsp)
- 1 large leek (about 200 g), white and light green parts only, halved lengthwise and thinly sliced
- 400 g floury potatoes (e.g., Maris Piper, Russet), peeled and cut into 1.5 cm cubes (about 3 cups)
- 1 bay leaf
- 6 whole black peppercorns
- 1/4 tsp kosher salt to start, plus more to taste
- 1/2 tsp freshly ground black pepper, plus more to finish
To Finish
- 2 tbsp chopped flat-leaf parsley (about 8 g)
- Optional: 1–2 tsp fresh lemon juice, to brighten

Step-by-Step Instructions
Step 1: Prep the vegetables
Trim, halve, and rinse the leek thoroughly, fanning out the layers to remove any grit. Pat dry and thinly slice the white and light green parts. Peel the potatoes and cut into 1.5 cm cubes. Finely chop the parsley and set aside.
Step 2: Poach the haddock in milk
In a wide, heavy pot (at least 3.5 liters), combine the milk, water, bay leaf, and whole peppercorns. Lay the smoked haddock in the pot, skin-side down. Heat gently over medium until the liquid reaches a bare simmer—tiny bubbles at the edge, about 185°F/85°C. Poach for 5–7 minutes, until the fish is opaque and just starting to flake. Use a slotted spoon to lift the fish to a plate. Strain the hot milk through a fine sieve into a jug to remove aromatics; reserve. Discard the bay leaf and peppercorns.
Step 3: Sweat the leeks in butter
Wipe out the pot, add the butter, and melt over medium-low heat. Add the sliced leeks and a pinch of salt. Cook gently for 6–8 minutes, stirring often, until the leeks are soft and sweet but not browned. If they begin to color, lower the heat.
Step 4: Simmer the potatoes in the poaching milk
Pour the reserved hot milk back into the pot with the leeks. Add the diced potatoes. Bring back to a gentle simmer and cook, uncovered, 12–15 minutes, or until the potatoes are very tender. Keep the heat low to avoid boiling, which can cause the milk to curdle. Skim any foam from the surface if needed.
Step 5: Flake the fish and thicken the chowder
While the potatoes simmer, remove and discard the haddock skin and any pin bones. Flake the fish into bite-size pieces. When the potatoes are tender, use a spoon to mash a ladleful of potatoes against the side of the pot—this naturally thickens the chowder. Return the haddock to the pot and simmer gently for 2 minutes. Season with 1/4–1/2 tsp kosher salt (smoked fish varies in saltiness) and 1/2 tsp freshly ground black pepper. Add lemon juice if using for brightness.
Step 6: Finish with parsley and rest
Stir in most of the parsley, reserving a little for garnish. Turn off the heat, cover, and let the soup rest for 3 minutes so the flavors meld. Taste and adjust seasoning. Ladle into warm bowls and finish with remaining parsley and plenty of freshly ground black pepper.
Pro Tips
- Seek undyed smoked haddock (often labeled Finnan haddie) for a clean, natural smoke and color.
- Temperature control matters: keep the liquid at a bare simmer (about 185°F/85°C). Boiling toughens fish and can split milk.
- Use floury potatoes (Maris Piper, King Edward, Russet) for the creamiest body; waxy varieties do not mash as well.
- Rinse leeks thoroughly—grit loves to hide between the layers. A quick soak in cold water helps.
- Rest the finished chowder off-heat for a few minutes; the texture becomes silkier and the smoke mellows.
Variations
- Extra-rich: Stir in 60 ml double cream (1/4 cup) at the end for a more luxurious finish.
- Smoky bacon: Render 75 g diced smoked streaky bacon first, then sweat the leeks in the bacon fat and proceed. Reduce added salt.
- Spring finish: Swap parsley for chives or add sliced spring onions at the end for a fresh, oniony lift.
Storage & Make-Ahead
Best served the day it is made. Refrigerate leftovers in an airtight container up to 2 days. Reheat very gently over low heat to 160°F/71°C; do not boil. Freezing is not recommended for milk-based soups (they can split and the fish can turn grainy). For a head start, you can poach the haddock and reserve the strained poaching milk up to 1 day in advance; keep both chilled and finish the soup just before serving.
Nutrition (per serving)
Approximate values: 360 kcal; 32 g protein; 13 g fat; 29 g carbohydrates; 2 g fiber; sodium varies with haddock (approx. 900 mg). Values are estimates.
