
Fish soup is a comforting dish that brings together tender pieces of fish, fresh vegetables, and a flavorful broth that warms you from the inside out. It’s the perfect mix of light yet satisfying, with gentle flavors that highlight the fresh fish and subtle hints of herbs and spices.
I love making fish soup when I want something easy to prepare but still special enough to share with family or friends. One tip I always follow is to use a variety of fish or seafood if I can—it gives the soup a richer texture and a nicer depth of flavor. Plus, it’s a great way to use whatever’s fresh at the market.
My favorite way to serve fish soup is with some crusty bread on the side to soak up all the delicious broth. It’s such a simple meal but always feels like a little celebration of the sea. Every time I make it, it brings back those cozy days when I first learned to love cooking with fresh fish and making meals that feel light yet full of heart.
Key Ingredients & Substitutions
- Firm White Fish
- Cod, haddock, or halibut work great because they hold up well in soup without falling apart. If you can’t find these, try mahi-mahi or catfish as alternatives.
- Potatoes
- These add heartiness and soak up the broth’s flavor. Yukon Gold or red potatoes are good choices. Sweet potatoes can add a subtle sweetness if you want a twist.
- Tomatoes
- Fresh tomatoes bring acidity and brightness. When fresh isn’t available, canned diced tomatoes are just fine and often more convenient.
- Fresh Herbs
- Parsley and dill add freshness at the end. If you don’t have dill, tarragon or fennel fronds can make a nice substitute. Fresh herbs are best for aroma and flavor.
How Do I Keep the Fish Tender and Not Overcook It in the Soup?
Adding fish at the right time and cooking gently is key!
- Wait to add the fish until the potatoes are tender and the broth is simmering gently.
- Add the fish chunks carefully so they don’t break apart.
- Simmer just 5-7 minutes; fish cooks quickly and will flake easily when done.
- Avoid boiling the soup after adding fish to keep it tender.
This gentle cooking method keeps your fish deliciously soft and ensures your soup stays clear and light.
Equipment You’ll Need
- Large pot or Dutch oven – perfect for cooking the soup evenly and holding all the ingredients comfortably.
- Sauté pan (optional) – handy if you want to soften onions and garlic separately before adding to the soup.
- Wooden spoon – great for stirring without scratching your pot.
- Sharp knife – makes chopping fish, vegetables, and herbs quick and safe.
- Ladle – useful for serving the soup neatly into bowls.
Flavor Variations & Add-Ins
- Add shrimp or mussels for a seafood mix that brings more texture and taste.
- Include chopped fennel or celery for extra crunch and a subtle anise flavor.
- Stir in a pinch of saffron or smoked paprika to deepen the broth’s color and aroma.
- Top with a dollop of sour cream or swirl in coconut milk for creaminess.

Hearty Fish Soup with Tomatoes and Herbs
Ingredients You’ll Need:
- 1 lb (450g) firm white fish fillets (such as cod, haddock, or halibut), cut into chunks
- 2 tablespoons olive oil
- 1 medium onion, chopped
- 2 cloves garlic, minced
- 2 medium potatoes, peeled and diced
- 2 large tomatoes, chopped (or 1 cup canned diced tomatoes)
- 4 cups fish stock or vegetable broth
- 1 bay leaf
- ½ teaspoon paprika
- Salt and pepper to taste
- Fresh herbs: 2 tablespoons chopped parsley and 2 tablespoons chopped dill
- Lemon juice (optional), to taste
Time Needed
This fish soup takes about 10 minutes to prepare and roughly 25 minutes to cook, making it a quick and comforting meal perfect for any day.
Step-by-Step Instructions:
1. Sauté Onions and Garlic:
Heat the olive oil in a large pot over medium heat. Add the chopped onion and cook, stirring occasionally, until the onions are soft and see-through—about 5 minutes. Add the minced garlic and cook for another minute until you can smell its wonderful aroma.
2. Add Vegetables and Simmer:
Mix in the diced potatoes and chopped tomatoes. Cook for 3 to 4 minutes, stirring gently. Next, pour in the fish stock or vegetable broth, add the bay leaf and paprika, and bring everything to a boil. Once boiling, reduce the heat and let the soup simmer for 10 to 15 minutes, until the potatoes are tender when poked with a fork.
3. Add Fish and Finish:
Carefully place the fish chunks into the simmering soup and gently cook for 5 to 7 minutes more, until the fish is fully cooked and flakes easily. Remove the pot from heat and take out the bay leaf. Stir in the fresh parsley and dill. Taste and add salt, pepper, and lemon juice if you like a bit of brightness.
4. Serve:
Ladle the soup into bowls and enjoy it while hot. This soup goes wonderfully with crusty bread to soak up every flavorful drop!
Can I Use Frozen Fish for This Soup?
Yes, you can use frozen fish! Just make sure to thaw it completely in the fridge overnight before cooking. Pat the pieces dry to avoid adding extra moisture to the soup.
Can I Make This Soup Ahead of Time?
Absolutely! The soup tastes great reheated. Store it in an airtight container in the fridge for up to 2 days. When reheating, warm gently on the stove to keep the fish tender.
What Can I Use Instead of Fresh Herbs?
If you don’t have fresh parsley or dill, dried herbs work too. Use about one-third of the fresh amount since dried herbs are more concentrated. Add them while simmering for best flavor.
How Should I Store Leftovers?
Keep leftover fish soup in a sealed container in the fridge for up to 3 days. Reheat on the stove over low heat, stirring occasionally, until warmed through.