This fish soup recipe is a comforting bowl filled with tender chunks of fish, fresh vegetables, and a flavorful broth that warms you up from the inside out. The mix of herbs and a touch of lemon adds brightness that balances the rich taste of the fish perfectly. It’s simple but full of comforting home-cooked goodness.
I love making this soup when I want something light but satisfying, especially on a chilly day. One tip I use is to pick a mix of white fish that holds its shape well to keep the soup looking nice and hearty. I also like to let the soup simmer gently, which helps the flavors come together just right without overcooking the fish.
Serving this fish soup with some crusty bread or a sprinkle of fresh parsley makes it feel like a little celebration at the dinner table. It’s the kind of meal that feels cozy and special without needing a lot of fuss. Whenever I make it, I can’t help but think about how perfect it is for sharing with family or friends on a quiet evening.
Key Ingredients & Substitutions
White fish fillets: Cod, haddock, or tilapia are great choices because they hold shape well. If you prefer, try snapper or pollock. Avoid delicate fish like sole, as they may break apart too much.
Fish stock or vegetable broth: Fish stock adds an extra depth of flavor, but vegetable broth works fine if you want a lighter option or can’t find fish stock.
Potatoes: They add heartiness and texture. Use waxy potatoes so they hold up nicely. You can swap with sweet potatoes for a slightly different flavor.
Dill: Fresh dill adds a lovely herbal aroma that pairs perfectly with fish. If you don’t have dill, fresh parsley or fennel fronds are fine substitutes.
How Can I Avoid Overcooking the Fish in the Soup?
Fish cooks quickly and can turn rubbery if overcooked, so timing is key here.
- Add the fish chunks last, after the potatoes are tender.
- Keep the soup at a gentle simmer—not a rolling boil—while cooking the fish.
- Simmer for just 5-7 minutes until the fish flakes easily.
- Use a fork to check for doneness; the fish should be opaque and break apart gently.
This way, your fish stays tender and the soup tastes fresh and balanced.
Equipment You’ll Need
- Large pot – big enough to hold all the ingredients and let the soup simmer evenly.
- Sharp knife – for chopping onions, tomatoes, and filleting the fish into chunks.
- Cutting board – a sturdy surface makes prep easier and safer.
- Wooden spoon – great for stirring without scratching the pot.
- Ladle – helps serve the hot soup neatly into bowls.
Flavor Variations & Add-Ins
- Add shrimp or clams for extra seafood variety and a delicious texture contrast.
- Swap potatoes for sweet potatoes or add carrots to add natural sweetness and color.
- Stir in a pinch of crushed red pepper flakes if you want a touch of heat.
- Use fresh basil or parsley in place of dill for a different fresh herb note.

Hearty Fish Soup with Tomato and Herbs
Ingredients You’ll Need:
- 1 lb (450 g) white fish fillets (such as cod, haddock, or tilapia), cut into chunks
- 4 cups (1 liter) fish stock or vegetable broth
- 2 medium potatoes, peeled and diced
- 1 large onion, chopped
- 2 cloves garlic, minced
- 2 large ripe tomatoes, chopped (or 1 cup canned diced tomatoes)
- 2 tablespoons olive oil
- 1 teaspoon paprika
- 1/2 teaspoon ground black pepper
- Salt, to taste
- Fresh dill, chopped (about 2 tablespoons)
- Optional: a squeeze of lemon juice for final brightness
How Much Time Will You Need?
This fish soup takes about 10 minutes to prepare and roughly 25 minutes to cook. The total time is around 35 minutes, making it a quick and easy warm meal.
Step-by-Step Instructions:
1. Cooking the Aromatics:
Heat the olive oil in a large pot over medium heat. Add the chopped onion and garlic and sauté for about 5 minutes, or until they’re soft and translucent.
2. Adding Tomatoes and Spices:
Stir in the diced tomatoes and paprika. Cook for 3 to 4 minutes until the tomatoes start to break down and release their juices.
3. Simmering the Broth and Potatoes:
Pour in the fish stock or vegetable broth and bring to a boil. Add the diced potatoes, reduce the heat to a simmer, and cook until the potatoes are tender—this will take about 15 minutes.
4. Cooking the Fish:
Gently add the fish chunks to the pot. Let the soup simmer on low heat for 5 to 7 minutes until the fish is cooked through and flakes easily.
5. Finishing the Soup:
Season the soup with salt and black pepper to taste. Stir in the chopped fresh dill just before serving to add a fresh herbal flavor. Optionally, add a squeeze of lemon juice to brighten the taste.
6. Serving:
Serve the soup hot, with crusty bread or a light salad on the side for a complete meal.
Can I Use Frozen Fish for This Soup?
Yes! Just make sure to thaw the fish completely in the refrigerator overnight or under cold running water before adding it to the soup to ensure even cooking.
How Should I Store Leftover Fish Soup?
Store leftovers in an airtight container in the fridge for up to 2 days. Reheat gently on the stove over low heat to prevent the fish from overcooking.
Can I Substitute Fresh Dill with Another Herb?
Absolutely! Fresh parsley or fennel fronds work well as alternatives if you don’t have dill on hand. Add them at the end of cooking for the best flavor.
Is It Possible to Make This Soup Ahead of Time?
Yes, you can prepare the base soup (without the fish) a day ahead and refrigerate it. Add the fish and dill just before reheating and serving to keep everything fresh and perfectly cooked.