This Mediterranean fish soup is warm, fresh, and full of simple flavors. Tender white fish cooks in a tomato broth with onion, garlic, vegetables, lemon, and herbs. It tastes rich without feeling heavy, and it comes together in one pot.
Servings: 6
Prep time: 20 minutes
Cook time: 30 minutes
Total time: 50 minutes
Why I Love This Recipe
This is the kind of soup I like when I want something cozy but still fresh. Tomato broth makes it feel warm and hearty, while lemon and parsley keep the flavors bright.
I also love the moment the fish goes into the pot. It only needs a few minutes. You start with a simple vegetable and tomato soup, then those tender pieces of cod turn it into a full meal.
- It uses one pot, so cleanup is simple.
- The fish cooks quickly.
- Tomatoes and fish stock create a flavorful broth without hours of cooking.
- Lemon adds freshness without making the soup taste strongly sour.
- The olives add little salty bites.
- It feels special enough for guests but is easy enough for a weeknight.

What You’ll Need
- 2 tablespoons extra-virgin olive oil
- 1 medium onion, diced, about 1 cup
- 2 medium carrots, peeled and diced, about 1 cup
- 2 celery stalks, diced, about 1 cup
- 1 red bell pepper, seeded and diced, about 1 cup
- 4 garlic cloves, minced
- 1 teaspoon dried oregano
- 1/2 teaspoon red pepper flakes, optional
- 1 can (28 ounces) diced tomatoes with their juices
- 4 cups low-sodium fish stock or seafood stock
- 1 bay leaf
- 1 teaspoon kosher salt, plus more to taste
- 1/2 teaspoon black pepper
- 1 1/2 pounds skinless cod or other firm white fish, cut into 1 1/2-inch pieces
- 1/2 cup pitted Kalamata olives, sliced
- 2 tablespoons fresh lemon juice
- 1/4 cup fresh parsley, chopped
- 1 lemon, cut into wedges for serving

How to Make Mediterranean Fish Soup
Step 1: Cook the Onion and Vegetables
Heat 2 tablespoons extra-virgin olive oil in a large Dutch oven or soup pot over medium heat. Add 1 medium onion, diced (about 1 cup), 2 medium carrots, peeled and diced (about 1 cup), 2 diced celery stalks (about 1 cup), and 1 seeded and diced red bell pepper (about 1 cup). Cook for 7 to 8 minutes, stirring now and then. The onion should look soft and the vegetables should start to become tender.

Step 2: Add the Garlic and Seasonings
Add 4 minced garlic cloves, 1 teaspoon dried oregano, and 1/2 teaspoon red pepper flakes, if using. Stir everything together and cook for about 30 seconds. Stop when the garlic smells fragrant. Do not let it turn dark brown.

Step 3: Build the Tomato Broth
Pour in 1 can (28 ounces) diced tomatoes with their juices and 4 cups low-sodium fish or seafood stock. Add 1 bay leaf, 1 teaspoon kosher salt, and 1/2 teaspoon black pepper. Stir well and bring the soup to a gentle boil.
Turn the heat down to medium-low. Let it simmer uncovered for about 10 minutes. This gives the vegetables time to soften and lets the broth develop more flavor.

Step 4: Gently Cook the Fish
Lower the heat so the broth is at a gentle simmer. Add 1 1/2 pounds skinless cod cut into 1 1/2-inch pieces. Gently push the fish into the broth with a spoon.
Cook for 5 to 7 minutes. Avoid hard boiling or lots of stirring because that can break the fish apart. The cod is ready when it is opaque and flakes easily. For food safety, the thickest pieces should reach 145°F (63°C).

Step 5: Finish with Olives, Lemon, and Parsley
Remove and throw away the bay leaf. Gently stir in 1/2 cup sliced pitted Kalamata olives and 2 tablespoons fresh lemon juice. Turn off the heat, then add 1/4 cup chopped fresh parsley.
Taste the broth. Add a little more salt if needed. Stir very gently so the cooked fish stays in nice pieces.

Step 6: Serve
Ladle the hot soup into 6 round soup bowls. Divide the fish and vegetables evenly so every serving gets plenty. Serve with the lemon wedges from 1 lemon for squeezing over the top.

Why This Recipe Works (Quick Science)
Fish cooks much faster than firm vegetables. That is why the carrots, celery, onion, and pepper go into the pot first. By the time the cod is added, the vegetables are already tender.
Keeping the broth at a gentle simmer matters too. Cod is made of delicate muscle fibers. Strong boiling and heavy stirring can pull those fibers apart and leave you with small flakes instead of tender chunks.
The lemon goes in near the end. This keeps its flavor fresh and bright. The olive oil also carries flavors from the garlic, oregano, and vegetables through the broth.
Pro Tips
- Cut the cod into similar 1 1/2-inch pieces. They will cook more evenly.
- Keep the soup at a gentle simmer after adding the fish. Hard boiling can break it apart.
- Use a firm white fish. Cod, haddock, halibut, and sea bass can all work.
- Taste before adding extra salt. Stock and Kalamata olives can already contain plenty.
- Stir gently once the fish is cooked. A small shake of the pot can sometimes be better than vigorous stirring.

Tools You’ll Need
- Large Dutch oven or soup pot
- Chef’s knife
- Cutting board
- Vegetable peeler
- Measuring cups
- Measuring spoons
- Wooden spoon
- Ladle
- Citrus juicer
- Instant-read thermometer, optional but useful
Substitutions and Variations
- Fish: Try haddock, halibut, sea bass, or another firm white fish instead of cod.
- Stock: Seafood stock gives the strongest seafood flavor, but fish stock works well.
- No olives: Leave them out if you do not like them.
- More seafood: Add peeled shrimp during the final few minutes of cooking.
- More vegetables: Add chopped zucchini with the tomatoes.
- More heat: Increase the red pepper flakes.
- No heat: Skip the red pepper flakes completely.
- Fresh herbs: Fresh basil can replace some or all of the parsley.
Make-Ahead Tips
You can make the tomato and vegetable broth up to 2 days ahead, but stop before adding the fish, olives, lemon, and parsley.
Cool the broth and refrigerate it in a covered container. When you are ready to eat, bring it back to a gentle simmer. Add the fish and finish the recipe as written. This keeps the cod from becoming dry from reheating.
Common Mistakes
- Boiling the fish too hard: Keep the broth at a gentle simmer so the cod stays in chunks.
- Adding the fish too early: Let the vegetables become tender first.
- Cutting tiny fish pieces: Small pieces can fall apart quickly. Aim for about 1 1/2 inches.
- Stirring too much: Be gentle after the cod goes into the soup.
- Adding lots of salt at the start: Olives and stock can be salty. Taste the finished soup before adding more.
- Overcooking the cod: Once it is opaque, flakes easily, and reaches 145°F (63°C), it is ready.
What to Serve With
This soup is especially good with something that can soak up that tomato broth.
- Warm crusty bread
- Garlic bread
- Toasted pita
- Simple green salad
- Greek salad
- Roasted potatoes
- Couscous with herbs
- A small bowl of rice
Leftovers and Storage
Let leftover soup cool, then place it in an airtight container. Refrigerate it for up to 2 days.
Reheat it slowly over low to medium-low heat until steaming hot. Avoid boiling it. Gentle reheating helps keep the fish tender.
You can freeze the tomato broth before the fish is added. For the best texture, I do not recommend freezing the finished soup because cooked fish can become dry or soft after freezing and reheating.
Macros Information
Approximate nutrition per serving, based on 6 servings:
- Calories: 285
- Protein: 31 g
- Carbohydrates: 17 g
- Fat: 11 g
- Fiber: 5 g
These numbers are estimates. The exact macros will change with the type of fish, stock, tomatoes, olives, and brands you use.
FAQ
Q: What is the best fish for Mediterranean fish soup?
A: Cod is a great choice because it has a mild flavor and firm texture. Haddock, halibut, and other firm white fish also work.
Q: Can I use frozen fish?
A: Yes. Thaw it fully in the refrigerator first. Pat it dry, cut it into 1 1/2-inch pieces, and cook it as directed.
Q: How do I know when the fish is cooked?
A: It should look opaque and flake easily with a fork. The thickest part should reach 145°F (63°C).
Q: Can I make the soup without olives?
A: Yes. Just leave them out. You may want to taste the broth and add a small extra pinch of salt.
Q: Can I make this soup spicy?
A: Yes. Add more red pepper flakes with the garlic and oregano.
Q: Can I make it ahead?
A: Yes. Make the tomato and vegetable broth ahead, refrigerate it, and add the fish when you reheat the soup for serving.
Q: Why did my fish fall apart?
A: The soup may have boiled too hard, the fish may have cooked too long, or it may have been stirred too much. Keep the heat gentle once the fish goes in.
Final Thoughts
Mediterranean fish soup looks impressive, but the cooking is wonderfully simple. Start with plenty of vegetables, build a rich tomato broth, and let the cod cook gently right at the end.
Grab some crusty bread and serve the soup while it is hot. If you make it, leave a comment about how it turned out, what fish you used, or any questions you have.