This comforting fish soup layers flaky white fish and optional shrimp with carrots, leek, potatoes and canned tomatoes in a fragrant, savory broth. Sauté onion and leek in olive oil, add garlic and vegetables, deglaze with white wine, then simmer in stock with bay leaf and herbs until tender. Add seafood and cook gently 5-7 minutes. Finish with parsley and lemon and serve with crusty bread.
The rain was hammering against the kitchen window the evening I threw together my first fish soup, more out of stubbornness than skill, using leftover cod and a carton of stock that had been lurking in the back of the fridge. What came out of that pot forty minutes later was nothing short of a small miracle, briny and golden and thick with soft vegetables that seemed to melt into the broth. I have been chasing that exact bowl ever since, tweaking and tasting until the recipe finally settled into something I can make without even thinking. It is the kind of soup that makes you close your eyes after the first spoonful.
I made a massive batch of this for a friend who had just moved into a drafty apartment with nothing but a folding table and two mismatched chairs. We sat there with our bowls balanced on our knees, bread torn between us, and she told me it was the first time the new place had felt like home.
Ingredients
- White fish fillets (400 g): Cod or haddock work beautifully here because they hold their shape without turning mushy, and cutting them into generous chunks keeps every bite satisfying.
- Shrimp (150 g, optional): Peeled and deveined shrimp add a sweet pop of texture that makes the soup feel a little more celebratory.
- Onion (1 large, finely chopped): The quiet backbone of the broth, slowly softened until sweet and translucent before anything else joins the pot.
- Garlic (2 cloves, minced): Added after the onion so it releases its fragrance without browning or turning bitter.
- Carrots (2, sliced): They bring a gentle sweetness and a flash of color that makes the bowl look as good as it tastes.
- Leek (1, cleaned and sliced): Leek gives the broth an almost silky depth that regular onions alone cannot achieve.
- Potatoes (2 medium, peeled and cubed): They thicken the soup slightly as they cook and provide a hearty bite that makes this a full meal.
- Celery (2 stalks, diced): A quiet flavor builder that you might not notice on its own but would absolutely miss if it were gone.
- Chopped tomatoes (1 can, 400 g): Adds body and a subtle acidity that balances the richness of the seafood beautifully.
- Fish stock (1 L): The soul of the soup, though vegetable stock works in a pinch if that is what you have on hand.
- Dry white wine (100 ml): Just a splash lifted straight from whatever bottle is open, and it brightens everything in the pot.
- Olive oil (2 tbsp): Used to soften the vegetables at the start and keeps the whole dish dairy free.
- Bay leaf (1): An old fashioned touch that quietly ties all the herbs together while the soup simmers.
- Dried thyme and oregano (half teaspoon each): A humble herb pairing that makes the broth taste like a coastal kitchen in the best way.
- Salt and pepper: Season gradually and taste often because the fish and stock already carry salt.
- Fresh parsley and lemon wedges: The finishing flourish that wakes everything up right before serving.
Instructions
- Build the flavor base:
- Warm the olive oil in your largest pot over medium heat and add the onion and leek, stirring occasionally until they go soft and fragrant, about five minutes. You want them sweet and golden at the edges but never browned.
- Wake up the vegetables:
- Toss in the garlic, carrots, celery, and potatoes, giving them five minutes to soak up the oil and start releasing their aromas. Stir often enough that nothing sticks but not so much that nothing gets a chance to color.
- Deglaze with wine:
- Pour in the white wine and let it bubble for two minutes, scraping up anything that has settled on the bottom of the pot. You will smell it shift from sharp to mellow almost immediately.
- Build the broth:
- Add the chopped tomatoes, fish stock, bay leaf, thyme, and oregano, then bring everything to a boil before reducing the heat to a gentle simmer. Cover the pot and let it cook for fifteen minutes until the vegetables are fork tender.
- Add the seafood:
- Gently lower the fish chunks and shrimp into the simmering broth and cook for five to seven minutes without stirring too aggressively. The fish is ready when it flakes easily and turns opaque throughout.
- Season and finish:
- Taste the broth and adjust with salt and pepper until it sings, then fish out the bay leaf so nobody gets a surprise. Ladle into deep bowls, scatter with fresh parsley, and serve with a fat wedge of lemon on the side.
There is something about carrying a steaming bowl of this soup to the table on a cold evening that makes everyone go quiet for just a moment, spoons poised, steam curling up into the lamplight. It has become my instinctive answer whenever someone I love looks tired or cold or simply needs feeding without fuss.
Choosing Your Fish
Any firm white fish will serve you well here but I have grown partial to haddock for its slightly sweeter flavor and the way it breaks into thick, satisfying flakes. Cod is the classic choice and widely available, while salmon makes a richer, more deeply colored version that feels almost luxurious. Smoked fish is a wonderful shortcut to depth if you want the broth to taste as though it has been simmering for hours rather than minutes.
Serving Suggestions
Crusty bread is not optional in my kitchen when this soup is on the stove because you need something sturdy to drag through the broth and soak up every last drop. A simple green salad with a sharp vinaigrette cuts through the richness beautifully if you are serving this as part of a larger meal.
Making It Your Own
Once you have the basic rhythm of this soup in your hands, it becomes a canvas for whatever you have on hand or whatever mood you are in. A pinch of chili flakes transforms it into something punchy and bold, while a splash of cream at the very end turns it velvet soft and indulgent.
- Keep leftover soup in the fridge for up to two days but know that the fish will continue to soften as it sits.
- Freeze the broth base without the seafood and add fresh fish when you reheat for the best texture.
- Always taste for salt one last time before serving because the seasoning shifts as the soup cools and rests.
Some recipes earn their place in your rotation through sheer practicality, and this is one of mine, reliable and warming and endlessly forgiving. All I hope is that it finds its way into your kitchen on a night when you need it most.
Recipe Questions & Answers
- → Can I substitute the white fish with another type?
-
Yes. Firm, mild fish like cod, haddock or pollock work well; salmon adds a richer flavor and smoked fish gives a deeper, briny note. Adjust cooking time for thicker fillets.
- → How do I keep the fish from overcooking?
-
Add the fish and any shellfish at the end of cooking and simmer gently just until the fish flakes easily, typically 5-7 minutes depending on piece size.
- → Can I make the broth more intense?
-
Sear fish bones or use a concentrated fish stock, reduce the liquid slightly, or finish with a splash of the white wine used during cooking to boost depth and balance.
- → Is it possible to make a creamier version?
-
For a creamier finish, stir in a splash of cream at the end or blend a portion of the cooked vegetables and return them to the pot. Note this adds dairy.
- → Can I prepare this ahead of time or freeze it?
-
You can prepare the base (sautéed vegetables and stock) ahead and refrigerate. Freeze without the cooked fish for best texture; add fresh fish when reheating.
- → What side dishes pair well with this soup?
-
Crusty bread or grilled sourdough for dunking, a simple green salad for freshness, or roasted vegetables to round out the meal are all excellent choices.