Fish Soup with Herbs

Steaming Fish Soup with flaky cod chunks, carrots, potatoes, and parsley. Save Pin
Steaming Fish Soup with flaky cod chunks, carrots, potatoes, and parsley. | noshtheory.com

This comforting fish soup brings together chunks of white fish and optional shrimp with carrots, potatoes, leek, celery and canned tomatoes, gently poached in fish stock and a splash of dry white wine. Start by softening onion and leek in olive oil, add vegetables and simmer until tender, then add the seafood and cook just until it flakes. Finish with parsley and lemon; serve with crusty bread or a pinch of chili for heat.

The rain was hammering against the kitchen window so hard that Tuesday evening that cooking anything felt like an act of defiance against the gloom. I had a bag of cod fillets from the morning market and a drawer full of vegetables that were begging to be used before they turned. Something about the smell of onions and leeks softening in olive oil made the whole house feel like a different place within minutes. That pot of fish soup turned a miserable night into the kind of evening you actually want to remember.

My neighbor Sandra knocked on the door that night to return a borrowed casserole dish, and the aroma hit her so hard she just stood in the hallway with her eyes closed for a moment. I ended up pulling up a chair and sharing the pot with her, tearing chunks of sourdough bread and dunking them straight into our bowls while she told me about her childhood near the coast in Portugal.

Ingredients

  • White fish fillets (400 g): Cod or haddock work beautifully because they hold their shape without turning mushy, so cut them into generous chunks rather than small pieces.
  • Shrimp, peeled and deveined (150 g, optional): These add a lovely sweetness and make the soup feel a bit more special when you have guests over.
  • Onion (1 large, finely chopped): The backbone of the broth, so take your time softening it properly because rushing this step shows in the final flavor.
  • Garlic cloves (2, minced): Add these after the onion has softened to prevent burning, which turns them bitter.
  • Carrots (2, sliced): They bring a subtle sweetness that balances the acidity of the tomatoes beautifully.
  • Leek (1, cleaned and sliced): Leeks hide dirt between their layers like nothing else, so slice them first and rinse thoroughly in a bowl of cold water.
  • Potatoes (2 medium, peeled and cubed): These give the soup body and make it filling enough to serve as a complete meal.
  • Celery stalks (2, diced): Celery might seem like an afterthought but it adds an earthy depth that you would absolutely miss if you left it out.
  • Chopped tomatoes (1 can, 400 g): A good quality canned tomato makes all the difference here since it forms the base of the entire broth.
  • Fish stock (1 L): Homemade is wonderful if you have it, but a quality shop bought stock works perfectly fine and saves you hours.
  • Dry white wine (100 ml): The wine lifts everything and adds a brightness that water or extra stock simply cannot replicate.
  • Olive oil (2 tbsp): Use a decent one because you are building flavor from the very first drop in the pot.
  • Bay leaf, dried thyme, dried oregano: This humble trio does heavy lifting behind the scenes, so do not skip them even if your spice rack is looking sparse.
  • Salt and pepper: Season gradually and taste as you go because the stock and tomatoes already carry a lot of salt.
  • Fresh parsley and lemon wedges: The parsley brings freshness and the lemon squeezed over each bowl at the last second brightens every single spoonful.

Instructions

Build the foundation:
Heat the olive oil in a large soup pot over medium heat and add the chopped onion and sliced leek, stirring occasionally until everything is soft and translucent, about five minutes. You want the kitchen to smell sweet and savory before you move on to anything else.
Add the hearty vegetables:
Toss in the garlic, carrots, celery, and potatoes, stirring them through the softened onion mixture for about five minutes until they pick up a little color at the edges. This step wakes up the vegetables and starts building layers of flavor that you will taste later.
Deglaze and build the broth:
Pour in the white wine and let it bubble away for about two minutes until it reduces slightly and loses that sharp alcohol smell. Add the chopped tomatoes, fish stock, bay leaf, thyme, and oregano, stirring everything together so the aromatics are evenly distributed.
Simmer until tender:
Bring the pot to a gentle boil, then lower the heat, cover it, and let everything simmer together for about fifteen minutes until the potatoes and carrots yield easily when poked with a knife. The broth should smell rich and deeply savory by now.
Cook the seafood:
Gently lower the fish chunks and shrimp into the simmering broth, letting them poach quietly for five to seven minutes until the fish flakes apart easily when pressed with a spoon. Resist the urge to stir vigorously because you want the fish to stay in beautiful tender pieces.
Finish and season:
Taste the broth and add salt and pepper as needed, then fish out the bay leaf and discard it before anyone accidentally bites into it. A small squeeze of lemon juice directly into the pot right at the end can work wonders if the broth tastes flat.
Serve with love:
Ladle the hot soup into wide bowls, scatter fresh parsley over each portion, and serve with lemon wedges and plenty of crusty bread on the side for dunking. This soup is best eaten immediately while the fish is perfectly tender and the broth is piping hot.
Savory Fish Soup simmered in white wine and tomato broth, lemon garnish. Save Pin
Savory Fish Soup simmered in white wine and tomato broth, lemon garnish. | noshtheory.com

Sandra now makes this soup every time it rains, which in our corner of the world means she makes it rather often. She told me last month that her granddaughter now calls it rainy day soup and asks for it by name whenever the clouds roll in.

What to Serve Alongside

A thick slice of sourdough or a chunk of crusty baguette is really all you need, toasted or not depending on your mood. If you want to round things out, a simple green salad with a sharp vinaigrette cuts through the richness of the broth beautifully and makes the whole meal feel complete without much extra effort.

Making It Your Own

Swap the white fish for salmon if you want something richer, or toss in a handful of mussels right at the end if you are feeling ambitious and want to impress someone. A pinch of chili flakes transforms the whole character of the soup into something bolder and more assertive, which is worth trying at least once. You can even stir in a splash of cream at the very end for a velvety version, though that does take it out of dairy free territory.

Storing and Reheating

This soup keeps well in the fridge for up to two days, though the fish will become more delicate and break down further as it sits, which honestly makes the broth even tastier the next day.

  • Reheat gently on the stove over low heat rather than microwaving, which can toughen the fish.
  • Freeze the broth base without the fish and add fresh seafood when you reheat for the best texture.
  • Always taste for salt again after reheating because flavors tend to mellow overnight.

Hearty Fish Soup ladled into bowls with aromatic herbs, lemon wedge, crusty bread. Save Pin
Hearty Fish Soup ladled into bowls with aromatic herbs, lemon wedge, crusty bread. | noshtheory.com

Some recipes become staples not because they are the most impressive thing you cook, but because they show up for you on the days you need them most. Keep this one close for the next rainy evening, and I promise it will earn its place in your rotation.

Recipe FAQs

Yes. Firm, mild fish like cod, haddock or pollock work well; salmon or smoked fish can be used for a richer flavor but will alter the soup’s profile and cooking time.

Lower the heat to a gentle simmer and add the fish toward the end of cooking. Poach just until the flesh flakes easily with a fork — usually 5–7 minutes depending on piece size.

Use a dry white wine such as Sauvignon Blanc or Pinot Grigio for brightness; simmer briefly to mellow the alcohol. Omit or replace with extra stock if you prefer to avoid wine.

For a creamier finish, stir in a splash of cream or coconut milk at the end and warm through gently. Note this adds richness and will change dietary attributes.

Cool quickly and refrigerate in an airtight container for up to 2 days. Reheat gently over low heat to avoid breaking down the fish; add a splash of stock if it thickens.

Add a pinch of chili flakes or a diced chili with the aromatics for heat. For more texture, toss in chopped fennel or finish with toasted breadcrumbs or crusty bread on the side.

Fish Soup with Herbs

Tender white fish and shrimp simmered with potatoes, leeks, tomatoes and herbs in a savory wine-infused broth.

Prep 20m
Cook 30m
Total 50m
Servings 4
Difficulty Easy

Ingredients

Seafood

  • 14 oz white fish fillets (cod or haddock), skinless, boneless, cut into 1-inch chunks
  • 5.3 oz shrimp, peeled and deveined (optional)

Vegetables

  • 1 large onion, finely chopped
  • 2 garlic cloves, minced
  • 2 carrots, sliced into ¼-inch rounds
  • 1 leek, cleaned and sliced
  • 2 medium potatoes, peeled and cubed
  • 2 celery stalks, diced
  • 1 can (14 oz) chopped tomatoes

Liquids

  • 4.2 cups fish stock or vegetable stock
  • ⅓ cup dry white wine
  • 2 tablespoons olive oil

Spices and Herbs

  • 1 bay leaf
  • ½ teaspoon dried thyme
  • ½ teaspoon dried oregano
  • Salt and freshly ground black pepper to taste
  • Fresh parsley, chopped, for garnish
  • Lemon wedges for serving

Instructions

1
Sauté the Aromatics: Heat olive oil in a large soup pot over medium heat. Add the onion and leek, cooking until softened and translucent, about 5 minutes.
2
Cook the Root Vegetables: Stir in the garlic, carrots, celery, and potatoes. Continue cooking for 5 minutes, stirring occasionally to prevent sticking.
3
Deglaze and Build the Broth: Pour in the white wine and simmer for 2 minutes until slightly reduced. Add the chopped tomatoes, fish stock, bay leaf, thyme, and oregano, stirring to combine.
4
Simmer Until Vegetables Are Tender: Bring the soup to a boil, then reduce heat to low. Cover and simmer for 15 minutes until all vegetables are fork-tender.
5
Poach the Seafood: Gently add the fish chunks and shrimp to the simmering broth. Cook for 5 to 7 minutes, just until the fish is opaque and flakes easily with a fork. Avoid overcooking.
6
Season and Finish: Season with salt and freshly ground black pepper to taste. Remove and discard the bay leaf before serving.
7
Serve: Ladle the hot soup into bowls. Garnish generously with chopped fresh parsley and serve alongside lemon wedges for squeezing.
Additional Information

Equipment Needed

  • Large soup pot or Dutch oven
  • Chef's knife and cutting board
  • Ladle
  • Wooden spoon

Nutrition (Per Serving)

Calories 260
Protein 25g
Carbs 22g
Fat 7g

Allergy Information

  • Contains fish and may contain shellfish (shrimp).
  • May contain sulfites from white wine.
  • Check packaged stock and canned tomatoes for potential hidden allergens.
Ivy Rosen

Passionate home cook sharing weeknight meals, kitchen hacks, and everyday cooking joy.