Fish Soup with Vegetables

Hearty Fish Soup steaming in a bowl with flaky cod, herbs, lemon wedge Save to feedthepins
Hearty Fish Soup steaming in a bowl with flaky cod, herbs, lemon wedge | feedthepins.com

This comforting fish soup brings together white fish chunks and optional shrimp with onion, leek, carrots, potatoes and celery simmered in dry white wine, chopped tomatoes and fish stock. Sweat the aromatics, reduce the wine, then simmer vegetables until tender before gently poaching the seafood. Finish with parsley and lemon; serve with crusty bread for a warming, easy main.

The rain was hammering against the kitchen window that Tuesday evening, and I had a fillet of cod staring at me from the fridge with no real plan in mind. I rummaged through the vegetable drawer and found a leek, some tired carrots, and a half empty bottle of white wine left over from the weekend. Forty minutes later the whole apartment smelled like a seaside taverna, and my roommate walked in asking if we had accidentally moved to the coast. That bowl of fish soup was so good we made it again three nights later.

I have since made this soup for friends recovering from colds, for a quiet Friday night in, and once for a neighbor who stopped by to borrow tools and ended up staying for dinner. There is something about ladling hot broth over tender fish that makes people feel genuinely cared for. The best part is watching someone tear off a piece of crusty bread and dunk it without any pretense. That is exactly the kind of food I want to cook.

Ingredients

  • White fish fillets (400 g): Cod or haddock work beautifully, and skinless boneless chunks cook evenly without any fussy prep.
  • Shrimp (150 g, optional): They add a lovely sweetness and make the soup feel a bit more festive when you have them on hand.
  • Onion (1 large): The quiet backbone of the broth, slowly softened until sweet and translucent.
  • Garlic (2 cloves): Minced fine so it melts into the broth rather than catching you by surprise.
  • Carrots (2): Sliced into thin rounds, they bring color and a gentle sweetness that balances the savory stock.
  • Leek (1): Clean it thoroughly because grit hides between every layer, but the silky texture is worth the extra rinse.
  • Potatoes (2 medium): Cubed small so they cook through and thicken the broth slightly as they break down.
  • Celery (2 stalks): Diced and added early, it gives the soup an earthy depth you would miss if you skipped it.
  • Chopped tomatoes (1 can, 400 g): They provide body and a subtle acidity that ties everything together.
  • Fish stock (1 L): The soul of the soup, though vegetable stock works in a pinch if that is what the pantry offers.
  • Dry white wine (100 ml): Just a splash to deglaze and lift the flavors, and the alcohol cooks off completely.
  • Olive oil (2 tbsp): Use a good one here because its fruity flavor runs through every spoonful.
  • Bay leaf, thyme, and oregano: A humble trio of dried herbs that somehow make the broth taste like it was made by someone who has been cooking for decades.
  • Salt and pepper: Season gradually and taste as you go because the fish stock already carries salt.
  • Fresh parsley and lemon wedges: The finishing touches that brighten each bowl and make it sing.

Instructions

Build the foundation:
Warm the olive oil in a large heavy pot over medium heat, then add the chopped onion and sliced leek, stirring occasionally until they soften and turn fragrant, about five minutes. You want them transluthe, not browned, so keep the heat gentle and patient.
Wake up the vegetables:
Stir in the garlic, carrots, celery, and cubed potatoes, letting them cook together for another five minutes until the garlic is aromatic and the edges of the vegetables just begin to soften. This brief saute concentrates their sweetness before any liquid joins the party.
Deglaze with wine:
Pour in the white wine and let it bubble for about two minutes, scraping up any bits stuck to the bottom of the pot because those are pure flavor. The kitchen will start smelling wonderful right about now.
Simmer the broth:
Add the chopped tomatoes, fish stock, bay leaf, thyme, and oregano, then bring everything to a boil before reducing the heat to low. Cover the pot and let it simmer gently for fifteen minutes until the vegetables are tender and the broth has deepened in color.
Cook the fish:
Gently slide the fish chunks and shrimp into the simmering broth, giving them space so they do not clump together. Let them poach softly for five to seven minutes until the fish flakes easily when pressed with a spoon and the shrimp curl and turn pink.
Season and serve:
Taste the broth and adjust with salt and pepper as needed, then fish out and discard the bay leaf. Ladle into warm bowls, scatter fresh parsley over the top, and set lemon wedges on the side so everyone can squeeze to their liking.
Dairy-free Fish Soup brimming with tender potatoes, sliced leek, carrots, fragrant parsley Save to feedthepins
Dairy-free Fish Soup brimming with tender potatoes, sliced leek, carrots, fragrant parsley | feedthepins.com

One winter I brought a thermos of this soup to a friend who was working outdoors all day, and she called me that evening to say it was the first thing in weeks that had made her feel warm from the inside out. That is the quiet power of a good fish soup. It asks for so little but gives back so much.

Choosing the Right Fish

Firm white fish is your best friend here because it holds its shape during the gentle simmer. Cod and haddock are classics for good reason, but I have used halibut, pollock, and even leftover baked salmon with great results. Frozen fillets work perfectly fine, just thaw them completely and pat them dry before cutting into chunks so they do not water down your broth.

Serving Ideas

Crusty bread is not optional in my kitchen when this soup is on the stove because you need something to soak up every last drop of that broth. A simple green salad with a sharp vinaigrette cuts through the richness nicely if you want to turn it into a full meal. On colder nights I have been known to serve it with a dollop of garlic aioli on the bread, which is completely inauthentic and completely delicious.

Storage and Reheating

This soup stores well in the refrigerator for up to two days, though the fish will continue to absorb the broth and become even more flavorful by the second day. Reheat it gently on the stove over low heat and never in a rolling boil or the fish will fall apart into tiny shards. I have also frozen portions successfully for up to a month, though the potatoes lose some of their firmness.

  • Cool the soup completely before refrigerating to keep the fish from overcooking in residual heat.
  • Avoid microwaving if possible because uneven heating can toughen the fish in spots.
  • Always add fresh parsley and a new squeeze of lemon when reheating to wake up the flavors.
Seared shrimp-topped Fish Soup ladled into deep bowls, served with crusty bread Save to feedthepins
Seared shrimp-topped Fish Soup ladled into deep bowls, served with crusty bread | feedthepins.com

Keep this recipe close for the nights when you need something warm and honest on the table without a trip to the store. It has never once let me down, and I suspect it will become one of those dishes you reach for without even thinking.

Recipe Q&A

Fish stock adds the deepest seafood flavor, but a good-quality vegetable stock works well if you prefer milder notes. Taste as you go and adjust salt and acidity with lemon.

Add fish and shrimp only at the end and keep the simmer gentle. Cook just until the fish flakes easily—usually 5–7 minutes—to preserve texture.

To keep it dairy-free, use olive oil and skip cream. For a creamy finish, stir in a splash of cream at the end, but add it off the heat to avoid breaking.

Use additional fish or vegetable stock with a splash of white wine vinegar or lemon juice to mimic the acidity. Reduce quantities to avoid overpowering the broth.

Refrigerate in an airtight container for up to 2 days. Reheat gently over low heat to avoid breaking the fish; add a little stock or water if the soup has thickened.

Add a pinch of chili flakes while sautéing the aromatics for heat, or finish with a grind of black pepper and a squeeze of lemon to elevate the broth's brightness.

Fish Soup with Vegetables

Tomato-and-wine fish soup with white fish, shrimp and vegetables; herb-finished and ready in 50 minutes.

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

Ingredients

Seafood

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

Vegetables

  • 1 large yellow onion, finely chopped
  • 2 garlic cloves, minced
  • 2 medium carrots, sliced into ¼-inch rounds
  • 1 medium leek, cleaned well and sliced into half-moons
  • 2 medium Yukon Gold potatoes, peeled and cubed into ½-inch pieces
  • 2 celery stalks, diced
  • 1 can (14 oz) diced tomatoes with their juices

Liquids and Fats

  • 4 cups fish stock or vegetable stock
  • ⅓ cup dry white wine
  • 2 tablespoons extra virgin olive oil

Seasonings and Garnish

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

Instructions

1
Build the aromatics: Heat the olive oil in a large heavy-bottomed soup pot over medium heat. Add the chopped onion and sliced leek, stirring occasionally, until softened and translucent, about 5 minutes.
2
Sauté the vegetables: Add the minced garlic, sliced carrots, diced celery, and cubed potatoes to the pot. Cook, stirring frequently, for 5 minutes until the vegetables begin to soften and the garlic is fragrant.
3
Deglaze and build the broth: Pour in the dry white wine and let it simmer for 2 minutes, scraping up any browned bits from the bottom of the pot. Add the diced tomatoes with their juices, fish stock, bay leaf, dried thyme, and dried oregano. Stir to combine.
4
Simmer until vegetables are tender: Bring the soup to a gentle boil, then reduce the heat to medium-low. Cover the pot and simmer for 15 minutes, or until the potatoes and carrots are fork-tender.
5
Cook the seafood: Gently lower the fish chunks and shrimp (if using) into the simmering broth. Continue to cook at a gentle simmer for 5 to 7 minutes, just until the fish is opaque, flakes easily with a fork, and the shrimp are pink and curled.
6
Season and serve: Taste the broth and adjust with salt and pepper as needed. Remove and discard the bay leaf. Ladle the hot soup into shallow bowls, top each portion with a generous sprinkle of fresh parsley, and serve immediately with lemon wedges alongside.
Additional Information

Equipment Needed

  • Large heavy-bottomed soup pot (at least 4 quart capacity)
  • Chef's knife and cutting board
  • Wooden spoon or heatproof spatula
  • Ladle

Nutrition (Per Serving)

Calories 260
Protein 25g
Carbs 22g
Fat 7g

Allergy Information

  • Contains fish
  • May contain shellfish (shrimp)
  • May contain sulfites (from white wine)
  • May contain dairy if cream is added for the creamy variation
Alyssa Ford

Easy, wholesome recipes and honest kitchen tips for busy families and food lovers.