Soups & Stews
This fish soup recipe delivers the best fish soup in the world with the potatoes—the kind of restaurant-quality comfort that turns a simple weeknight into a memorable meal.
The secret lies in slow-simmered broth infused with potatoes that break down into velvety creaminess, while delicate fish like cod or haddock stays flaky and tender.
I've perfected this over years of testing—balancing rich umami with bright herbs and just enough cream to round out the flavors without overpowering the seafood.
The magic happens in the broth, where onions and celery form a flavorful base before adding garlic, mushrooms for depth, and a splash of white wine to deglaze.
Potatoes cook until they're soft enough to mash slightly against the pot, creating that signature creamy texture that makes this soup irresistibly hearty. The fish is added just at the end to preserve its delicate texture, ensuring every bite delivers both flaky perfection and the warm, comforting broth.
What you'll end up with is a bowl of soup that's equal parts elegant and satisfying—golden broth flecked with tender fish, creamy potato strands, and fresh herbs that brighten every spoonful.
The aroma alone will have everyone gathered at the table, and the first taste will confirm why this might just be the best fish soup you've ever made.
It's the kind of dish that feels like a hug on a chilly day, with just enough sophistication to impress guests without requiring advanced skills.
Serve with crusty bread for dipping or a sprinkle of fresh parsley for color, and you've got a complete meal that's perfect for family dinners, potlucks, or when you need a nourishing dish that feels like a celebration.
The recipe scales beautifully too, so you can easily double it for a crowd. Let's get started on creating this flaky, potato-infused masterpiece.
Ingredients for best fish soup recipe in the world with potatoes
Six ingredients make this restaurant-quality fish soup feel like a hug in a bowl.
| Ingredient | Amount | Notes |
|---|---|---|
| White Fish Fillets 🐟 | 1 ½ lb | Cod, haddock, or halibut preferred |
| Yellow Onions 🧅 | 1 whole | Diced, medium size |
| Celery Stalks 🥬 | 4 whole | Diced, including leaves |
| Russet Potatoes 🥔 | 2 lb | Yukon gold or red preferred |
| Garlic Cloves 🧄 | 6 cloves | Minced, fresh preferred |
| White Mushrooms 🍄 | 8 oz | Sliced, cremini works too |
| Dry White Wine 🍷 | ½ cup | Sauvignon Blanc or Pinot Grigio |
| Heavy Cream 🥛 | ½ cup | Full-fat for creaminess |
| Fish Stock 💧 | 4 cups | Homemade or quality store-bought |
| Fresh Parsley 🌿 | ¼ cup | Chopped, for garnish |
| Fresh Dill 🌿 | ¼ cup | Chopped, for brightness |
| Fresh Thyme 🌿 | 1 tbsp | Leaves only, stems removed |
| Salt 🧂 | 1 ½ tsp | Diamond Crystal preferred |
| Black Pepper 🌶️ | ½ tsp | Freshly ground |
| Butter 🧈 | 2 tbsp | Unsalted, for richness |
The potatoes are non-negotiable here—Yukon Golds or Russets break down into that signature creamy texture. Trader Joe's has pre-washed baby potatoes that work great if you're short on time, but whole potatoes give you more control. For the fish, cod or haddock stays flaky when added last, but don't overcook it. The fish stock? Homemade is ideal, but Pacific Foods brand from the store is a solid backup. Look for bright, vibrant mushrooms—they add depth without overpowering.
No white wine? Dry vermouth at half the amount works in a pinch, or just use extra fish stock. Fresh herbs are ideal, but dried dill at one-third the amount gets you close. The butter matters here—unsalted, high-quality adds richness that pre-melted margarine can't match. If you're using frozen potatoes, thaw and pat dry first—they'll absorb less broth. The celery leaves add color and subtle flavor—don't skip them (they're free!).
This soup tastes even better the next day—make a double batch if you can. Store in airtight containers for 4-5 days in the fridge, or freeze for 3 months. I always keep a portion in the freezer for those 'I need comfort' days. The broth reduces beautifully when reheated, so add a splash of water if it gets too thick. Fresh herbs? Add them right before serving—they wilt fast in hot soup.
Why You'll Love This Recipe
- Pantry-Friendly Base: I swear by this recipe because it uses ingredients I always have—onions, celery, and potatoes—so no last-minute grocery runs. Even the fish fillets are forgiving; cod or haddock both work, and frozen is totally fine if you’re in a pinch.
- Garlic-Potato Magic: The secret’s in the slow-simmered potatoes—they soak up the broth and get just tender enough to melt in your mouth while holding their shape. Add that minced garlic at the end, and suddenly you’ve got a flavor bomb that makes plain fish taste like a restaurant dish.
- Lunchbox Hero: Between us, this soup is my go-to for packed lunches—it reheats beautifully and keeps the potatoes from turning mushy. My daughter’s favorite? The crispy edges on the fish when I sear them first. (Yes, even on a Tuesday night.)
- Budget Stretch: Honestly, this recipe feeds four for under $15 if you use store-brand broth and seasonal potatoes. The fish is the priciest part, but a single fillet stretches across two servings, and the veggies bulk it up so no one feels shortchanged. Leftovers? They’re my secret weapon for lazy Fridays.
Step-by-step instructions for potato-infused creamy fish soup
Here's how to create a velvety, potato-rich fish soup where every spoonful delivers flaky perfection.
Build the Flavor Base with Onions, Celery, and Garlic
Melt the 2 tablespoons butter in a large pot over medium heat. Add the diced 1 whole yellow onions and 4 whole celery stalks (including leaves), stirring occasionally for 5-6 minutes until softened and translucent. This is where the magic begins - those caramelized aromatics form the soul of your soup.
Add the 6 cloves minced garlic and cook for 30 seconds until fragrant but not browned. Here's the thing - if you let the garlic burn, it'll turn bitter and ruin your entire dish. Keep your eye on the pot and stir constantly. The base should smell like a warm, inviting hug by now - sweet onions, earthy celery, and that garlic punch.
Develop Depth with Mushrooms and Wine
Increase heat to medium-high and add the 8 ounces sliced white mushrooms. Cook for 4-5 minutes until they release their moisture and begin to brown slightly. This step adds meaty texture and umami depth that complements the fish beautifully.
Pour in the 0.5 cup dry white wine and scrape up any browned bits from the bottom of the pot. This technique, called deglazing, captures all those concentrated flavors that would otherwise go down the drain. Let the wine simmer for 2-3 minutes until reduced by half - you'll notice the alcohol smell dissipating as it cooks off.
Simmer Potatoes Until Fork-Tender
Add the 2 pounds russet potatoes (cut into 1-inch chunks) and the 4 cups fish stock to the pot. Bring to a boil, then reduce heat to low-medium and simmer uncovered for 15-18 minutes until the potatoes are fork-tender but not falling apart. You want them to hold their shape while still becoming creamy when cooked further.
Here's where patience pays off - if you rush this step, your potatoes will turn to mush. The reason we wait until they're just tender is that they'll finish cooking in the cream later, creating that perfect potato-infused richness without turning gluey.
Add Herbs and Season to Perfection
Stir in the 1 tablespoon fresh thyme leaves, 1.5 teaspoons salt, and 0.5 teaspoon black pepper. Taste the broth and adjust seasoning if needed - this is your chance to make sure the foundation is perfectly balanced before adding the delicate fish.
Add the 0.5 cup heavy cream and simmer gently for 5 minutes to let the flavors meld. The cream will begin to thicken slightly, creating that luxurious mouthfeel that makes this soup truly special. Don't walk away during this step - you want to keep an eye on it to prevent curdling.
Cook Fish Until Flaky and Delicate
Gently add the 1.5 pounds white fish fillets (cod, haddock, or halibut) to the simmering soup. Cook for 4-6 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 finish cooking from residual heat when removed from the pot.
Here's the critical moment: remove the fish and set it aside to rest for 2 minutes before serving. This resting period ensures the fish stays flaky and doesn't fall apart when you serve it. Meanwhile, stir in the 0.25 cup chopped fresh parsley and 0.25 cup chopped fresh dill for that bright, herbaceous finish.
Serve with Perfect Texture and Presentation
Return the fish to the pot and gently stir just once to distribute the herbs. Ladle the soup into bowls, making sure each serving gets a generous piece of flaky fish. The potatoes should be creamy but still hold their shape, and the broth should coat the back of a spoon with that perfect balance of richness and lightness.
Garnish each bowl with additional fresh dill and a sprinkle of black pepper. Serve immediately with crusty bread on the side - this is the moment you've been working toward. Each bite should deliver that perfect marriage of creamy potato-infused broth, delicate fish, and fresh herbs that makes this the best fish soup you'll ever make.
Pro Tips For Making Best Fish Soup Recipe In The World With Potatoes
- START HOT, END LOW: Get your pot screaming on medium-high heat with oil before tossing in onions and celery—this sears the vegetables and builds flavor fast. Once the fish goes in, drop to a gentle simmer. I used to let it boil after adding fish, and half the time the fillets turned to rubber. Keep it moving at 180°F (82°C) max, or the potatoes will turn to glue.
- PEEL POTATOES LAST: Toss whole, unpeeled Russets into the simmering broth when the fish is nearly done. The skins stay intact, adding texture and a rustic look. I learned this the hard way—peeling first meant mushy potatoes every time. If you’re worried about dirt, give them a quick rinse before adding, but don’t scrub.
- SALT THE POTATOES FIRST: Toss your chopped potatoes in a bowl with 1 teaspoon of salt and a drizzle of oil before they hit the pot. This jumpstarts flavor and prevents them from turning bland. I was skeptical until I tried it—now it’s non-negotiable. (Yes, even if you’re impatient like me.)
- USE FROZEN GARLIC: Skip mincing fresh garlic and grab a jar of frozen minced garlic—it’s prepped, consistent, and won’t burn. Dump it in with the broth and stir. I skip this when I’m lazy, but the dish is noticeably better when I don’t. (And no, it doesn’t taste like “garlic powder.”)
Storing and reheating this recipe
Refrigerator Storage
Let your fish soup cool to room temperature for no more than 2 hours before storing. Transfer to airtight glass containers—I love Pyrex 3-quart bowls with lids for portion control.
Store for up to 4-5 days in the fridge, where flavors actually deepen as the broth continues to meld. The creaminess from potatoes becomes even more pronounced overnight. 🥣
Freezer Prep Tips
For long-term storage, freeze soup in quart-sized freezer bags (lay them flat to save space). Leave 1-inch headspace for expansion and squeeze out excess air to prevent freezer burn.
Label with the date—this soup keeps quality for 3 months when frozen. I always freeze portions in single-serving sizes for quick meals. 🧊
Stovetop Reheating
My preferred method is stovetop reheating for best texture. Transfer soup to a pot and heat over medium-low heat for 8-10 minutes, stirring occasionally. Add 1-2 tablespoons water or fish stock if it thickens too much during reheating.
The potatoes should remain creamy, not gluey. Taste and adjust seasoning—soup often needs a pinch more salt after reheating. 🔥
Microwave Method
For quick reheating, use microwave-safe bowls and heat on 50% power in 2-minute intervals, stirring between each. Cover loosely with a microwave-safe lid to retain moisture.
Avoid full power—it can turn the cream grainy. If the soup looks too thick after reheating, stir in 1 tablespoon cold water or cream**.
Fish Texture Preservation
Here's my pro tip: If reheating soup with fish, remove the fish pieces first and reheat separately in a small bowl with a splash of broth. Add them back just before serving to maintain their delicate flakiness.
The fish will warm through from the hot soup while staying tender. This technique makes all the difference for restaurant-quality results at home. 🐟
Garnish Refresh
Always add fresh herbs after reheating—they wilt in hot soup. Sprinkle with chopped parsley or dill right before serving to brighten flavors. A final sprinkle of black pepper and a drizzle of extra virgin olive oil (just 1 teaspoon per bowl) adds restaurant-worthy finishing touches. 🌿
Nutrition facts
Frequently asked questions
Can I substitute potatoes with another vegetable?
While potatoes are key for that signature creamy texture, you can try sweet potatoes or carrots for a slightly different flavor profile. For a similar mouthfeel, use 1 cup of frozen cauliflower florets instead of potatoes—they'll break down beautifully in the broth. Just note that the creaminess will be less pronounced without potatoes.
What's the best fish to use if I can't find cod or haddock?
Any firm white fish works well—try halibut, mahi-mahi, or even tilapia if that's what's available. For extra flavor, use salmon (it pairs beautifully with the creamy potatoes) or monkfish for a meatier texture. Just adjust cooking time slightly—salmon needs 3-4 minutes while tilapia cooks in 4-5 minutes.
Why did my soup turn out too thick?
This usually happens when potatoes break down too much or the cream separates. To fix it, stir in 2-3 tablespoons of warm water or fish stock while reheating. For prevention, simmer potatoes at low-medium heat and add cream last—never boil the soup after adding it. If the cream curdles, whisk in 1 tablespoon cold water to restore smoothness.
Can I make this soup gluten-free?
This recipe is naturally gluten-free as long as you use gluten-free fish stock and check your wine for additives. For extra safety, toast 1 teaspoon gluten-free flour in butter before adding onions to create a light roux for thickening. Always verify labels on all ingredients to avoid cross-contamination.
How can I make this soup spicier?
Add ½ teaspoon smoked paprika with the mushrooms or 1 teaspoon cayenne pepper when seasoning. For depth without heat, try ½ teaspoon red pepper flakes (remove before serving if preferred). A splash of hot sauce (like Sriracha) at the end lets everyone customize their bowl. Pro tip: Add spices gradually and taste as you go.
