Creamy Fish Soup Recipe: Silky Broth With Flaky Fish Pieces

Soups & Stews

Creamy Fish Soup Recipe: Silky Broth With Flaky Fish Pieces

This creamy fish soup recipe delivers the perfect balance of silky broth and delicate flaky fish pieces that melt in your mouth. The secret lies in slow simmering fish until it practically falls apart, then blending just enough to create a velvety texture without overpowering the natural ocean flavors.

I developed this version after years of testing—it’s the one that finally convinced even my most skeptical family members to request seconds.

The foundation of this soup starts with a rich fish stock, built by simmering fish bones and aromatics until deeply flavorful. White fish like cod or haddock adds subtle sweetness, while a touch of cream or coconut milk (for a lighter version) creates that signature velvety consistency.

The vegetables—carrots, celery, and onions—provide natural sweetness and structure, ensuring every spoonful is both comforting and balanced.

What you’ll end up with is a soup that’s impossibly smooth yet still packed with flaky fish and tender vegetables. The broth clings to each bite, while the fish pieces stay delicate and melt-in-your-mouth tender.

This is the kind of soup that feels like a hug on a chilly day—warm, nourishing, and impossible to resist.

Serve it with crusty bread for dipping or a sprinkle of fresh herbs for brightness. The recipe scales easily, so you can make a single serving for a light lunch or double it for a hearty family dinner. Let’s get cooking—your taste buds will thank you.

👨‍🍳
Difficulty
Medium
🐟
Diet
Seafood
🔥
Calories
Med Cal

Ingredients for creamy fish soup

Simple ingredients that transform into velvety comfort. The secret is in the slow simmering and blending.

Ingredient Amount Notes
White Fish Fillets 🐟 12 oz Cod or haddock, skin removed
Fish Stock 💧 4 cups Homemade or quality store-bought
Heavy Cream 🥛 ½ cup Full-fat for richness
Light Coconut Milk 🥥 ¼ cup For lighter alternative
Carrots 🥕 1 cup Diced, medium size
Celery Stalks 🧅 2 whole Diced, leafy parts trimmed
Yellow Onion 🧅 1 whole Diced, medium size
Garlic Cloves 🧄 3 cloves Minced, fresh preferred
Fresh Dill 🌿 ¼ cup Chopped, stems removed
Lemon Juice 🍋 1 tbsp Freshly squeezed
Butter 🧈 2 tbsp Unsalted, for richness
Salt 🧂 1 tsp Kosher or sea salt
Black Pepper 🌶️ ½ tsp Freshly ground preferred
Olive Oil 🫒 1 tbsp For sautéing aromatics

The fish stock is the soul of this soup. Homemade stock made from fish bones and aromatics gives the deepest flavor, but a quality store-bought like Pacific Foods or Knorr works in a pinch. For the fish fillets, cod or haddock are ideal—they stay flaky and absorb flavors beautifully. I like to buy them fresh at Whole Foods or Trader Joe's where they’re always on ice. If you can’t find fresh, frozen works too—just thaw overnight in the fridge. The creaminess comes from heavy cream, but coconut milk makes a delicious lighter alternative that still feels indulgent.

No fresh dill? Dried dill at one-third the amount works, but fresh is worth hunting down—it brightens the whole dish. Running out of fish stock? Clam juice or shrimp stock adds a similar oceanic depth. For the vegetables, baby carrots or pre-diced celery save time, but whole carrots and celery stalks are cheaper and last longer. The butter and olive oil combo gives that rich, golden base—don’t skip it. If you’re watching calories, use half butter and half olive oil instead. And trust me, the lemon juice at the end is non-negotiable—it cuts through the richness and makes everything sing.

This soup tastes even better the next day, so make a double batch and freeze half. Store leftovers in the fridge for 3-4 days or freeze for up to 3 months. I like to portion it into containers with a little extra broth on top to keep it from drying out. For serving, a sprinkle of fresh dill or a drizzle of cream makes it look restaurant-worthy. The broth reduces slightly when reheated, so add a splash of water or stock if it gets too thick.

❤️

Why You'll Love This Recipe

  • No-Fuss Simmer: I swear by this—just dice carrots, simmer stock, and let the cream and coconut milk do the work. The fish fillets slide in last minute, so no overcooking stress.
  • Velvet Smooth Magic: That combo of heavy cream and coconut milk? It’s like a hug in a bowl. The carrots add just enough sweetness to balance the richness, and the fish stays tender every time.
  • Lunch or Dinner Hero: Make a big batch on Sunday—it’s perfect for packed lunches (yes, even in a thermos) or a cozy weeknight dinner. My kids ask for it more than pasta, honestly.
  • Leftovers That Don’t Suck: Unlike takeout, this soup actually tastes better the next day. The flavors meld, and the cream thickens just enough to feel indulgent without extra effort. Budget win.

Step-by-step instructions for creamy fish soup

Here's how to build a velvety fish soup with tender fish pieces that flake apart at the first touch.

1

Sauté the Aromatic Base

Heat the 1 tablespoon olive oil in a large pot over medium heat. Add the 1 whole yellow onion and 1 cup carrots, cooking for 5 minutes until softened. Stir in the 2 whole celery stalks and continue cooking for another 3 minutes until the vegetables begin to release their natural juices.

Add the 3 cloves garlic and cook for 30 seconds until fragrant. Here's the thing—don't let the garlic burn. It should smell sweet and inviting, not bitter. If it starts to darken too quickly, reduce the heat slightly. This aromatic base forms the flavor foundation of your soup, so take your time here.

2

Build the Silky Broth

Pour in the 4 cups fish stock and bring to a gentle simmer. Add the 2 tablespoons butter, stirring until melted and incorporated. Season with the 1 teaspoon salt and ½ teaspoon black pepper, then add the 1 tablespoon lemon juice. Let the broth simmer uncovered for 10 minutes to allow the flavors to meld together.

I like to taste the broth at this stage—it should be flavorful but not overpowering. If it needs more depth, a pinch of salt or a splash of lemon juice can help. The broth should be clear with just a hint of cloudiness from the butter and vegetables. This is your creamy base before we add the rich elements.

3

Add Cream and Coconut Milk

Reduce the heat to low and stir in the ½ cup heavy cream and ¼ cup light coconut milk. These ingredients will create the luxurious creaminess promised in the title. Let the soup simmer gently for 5 minutes, stirring occasionally to prevent any scorching at the bottom of the pot.

The soup should now have a velvety appearance with a smooth texture. If you taste it, you'll notice the richness from the cream and the subtle sweetness of the coconut milk. This is where the magic happens—don't rush this step. The gentle simmer ensures the cream doesn't curdle or separate, giving you that perfect, silky consistency.

4

Cook the Fish to Flaky Perfection

Add the 12 oz white fish fillets to the simmering soup. Cook for 4-5 minutes until the fish is just opaque throughout and flakes easily with a fork. The fish should be tender but still hold together slightly—it will continue cooking for a minute or two once removed from the heat.

Here's the critical part: don't overcook the fish. It should be delicate and flaky, not falling apart completely in the pot. You want pieces that hold their shape when served but melt in your mouth. Once the fish is cooked, remove it from the pot and set it aside on a plate.

5

Finish and Serve

Return the soup to a gentle simmer and stir in the ¼ cup fresh dill. Let it cook for 1 minute to allow the dill to release its bright, fresh flavor. Taste and adjust the seasoning if needed—you might need a little more salt or lemon juice to balance the richness of the cream.

Gently stir the fish back into the soup and let it warm through for 1 minute. Ladle the soup into bowls, making sure each serving gets a generous portion of flaky fish. Garnish with additional dill if desired. Serve immediately with crusty bread to soak up every last drop of that creamy, flavorful broth. The contrast of the warm, creamy soup with the crisp bread is what makes this dish truly special.

👨‍🍳

Pro Tips For Making Creamy Fish Soup

  • Sear Fish First: Hit the fish with a quick 30-second sear in a hot pan before adding it to the soup—this locks in moisture and adds depth. I used to skip this, and the fish always ended up dry and flavorless, no matter how carefully I cooked it afterward.
  • Whisk Cream Cold: Chill the heavy cream and coconut milk before stirring them into the hot stock—this prevents curdling like nothing else. I learned this the hard way after turning a smooth soup into a lumpy mess; now I keep the dairy in the fridge until the very last step.
  • Simmer Carrots Low: Cook the carrots separately in the fish stock for 10 minutes before adding the cream—this softens them without turning them to mush. My grandmother swore by this, and she was right: overcrowding the pot later makes the soup watery and dull.
  • Balance Heat Last: Taste the soup after adding cream, then adjust with a splash of coconut milk or a pinch of salt—creamy soups can go from perfect to greasy fast. I was skeptical until I tried it; now I double-check the finish every time.

Perfect pairings for this recipe

Bread Pairings

Nothing beats the contrast of warm, crusty bread with this creamy fish soup. I love serving it with a baguette sliced into thick pieces for dipping—just toast them in the oven for 3-5 minutes at 375°F until golden and crisp.

For extra indulgence, try a sourdough loaf with its tangy bite cutting through the richness. The bread soaks up every last drop of that velvety broth, making it feel like a complete meal. 🥖

Herb Garnishes

Fresh herbs elevate this soup from homemade to restaurant-worthy. A sprinkle of chopped parsley or fresh dill right before serving adds a pop of color and brightness.

I also like a drizzle of extra virgin olive oil and a pinch of flaky sea salt—it enhances the natural flavors without overpowering. For a bold touch, add a few red pepper flakes if you enjoy heat. These garnishes make the soup look as good as it tastes. ✨

Wine Pairings

A crisp white wine complements the creamy texture and delicate fish flavors beautifully. I reach for a Chardonnay with subtle oak notes—something like La Crema Sonoma Coast Chardonnay—to match the richness without overwhelming it.

For a lighter option, a Sauvignon Blanc from New Zealand, like Cloudy Bay, brings bright acidity that cuts through the cream. Avoid heavy reds or overly oaky whites—they’ll clash with the soup’s delicate balance. 🍷

Lighter Alternatives

If you're watching calories or prefer a lighter touch, swap the heavy cream for Greek yogurt or coconut milk. I’ve also had great success using half-and-half—it still delivers creaminess with fewer calories.

For a refreshing twist, serve the soup chilled with a side of lemon wedges or a small arugula salad dressed with a light vinaigrette. The acidity balances the richness perfectly. 🥗

Cheese Additions

A sprinkle of cheese can take this soup to the next level. I love adding grated Parmesan or feta crumbles right before serving—just 1-2 tablespoons per bowl adds a salty, umami depth.

For a richer option, try a dollop of crème fraîche—it melts into the soup beautifully. Avoid pre-shredded cheese (it contains anti-caking agents that make it grainy). 🧀

Vegetable Sides

Pair your creamy fish soup with a simple side salad or roasted vegetables to round out the meal. I often serve it with steamed asparagus or roasted Brussels sprouts—both add a touch of earthiness that contrasts the soup’s creaminess.

A small tomato and cucumber salad with a drizzle of balsamic vinegar also works wonderfully. These sides keep the meal light and balanced. 🥦

Nutrition facts

Servings 4
Amount Per Serving
Calories 320kcal
% Daily Value *
Total Fat 18g23%
Saturated Fat 10g50%
Cholesterol 65mg22%
Sodium 680mg29%
Total Carbohydrate 16g6%
Dietary Fiber 3g11%
Sugars 6g
Protein 28g56%
* Percent Daily Values are based on a 2,000 calorie diet. Your daily values may be higher or lower depending on your calorie needs.

Frequently asked questions

1

Can I use frozen fish instead of fresh for this soup?

Frozen fish works perfectly—just thaw it overnight in the refrigerator before cooking. The texture stays just as tender when cooked gently in the soup. Avoid thawing at room temperature, as this can promote bacterial growth. For best results, use skinless fillets like cod or haddock that are labeled "sustainably caught."

2

How do I make this soup dairy-free?

Swap the heavy cream for 1/2 cup full-fat coconut milk or 1/4 cup cashew cream (blended soaked cashews with water). For extra richness, add 1 tablespoon nutritional yeast—it gives a cheesy, umami flavor without dairy. The coconut milk version will be lighter but still velvety. Always use full-fat coconut milk for best texture.

3

Why did my fish turn rubbery instead of flaky?

Overcooking is the most common cause—fish should cook for just 4-5 minutes in the soup. Remove it as soon as it's opaque and flakes easily with a fork. Another tip: don't use overly large fish pieces (aim for 2-inch chunks). If you're unsure, undercook slightly—fish continues cooking slightly when removed from heat. For extra tenderness, add the fish back to the soup just before serving.

4

Can I make this soup spicy?

Yes! Add 1/2 teaspoon cayenne pepper or 1-2 sliced jalapeños when sautéing the aromatics. For a smoky kick, stir in 1/2 teaspoon smoked paprika with the butter. Garnish with red pepper flakes or a dollop of spicy mayo for extra heat. Balance the spice with a squeeze of lemon juice—it brightens the flavors and cuts through the heat.

5

How long can I store leftovers?

Store leftovers in an airtight container in the fridge for 3-4 days or freeze for up to 3 months. The soup actually tastes better the next day as flavors meld! When reheating, warm over low heat and add a splash of water or stock if it thickens too much. Avoid microwaving—it can make the fish rubbery. For best texture, reheat just until warmed through.

★★★★★4.8(1 review)
Categories Soups & Stews