Tomato Fish Soup with Herbs

Section: Comforting Soups and Hearty Stews

This tomato fish soup highlights Mediterranean tradition with layers of flavor, starting from a deeply aromatic fish stock built with whole fish and charred onion for smokiness. Sautéed carrot, celeriac, eggplant, and zucchini add body, while homemade tomato puree brings brightness. Finished with fish sauce, capers, and fresh herbs, the result is a savory, well-balanced bowl. Pan-seared fish cubes provide hearty texture, and grilled lemon adds zing at the table. This dish honors sustainable cooking, using every part of the fish while allowing seasonal adaptation to local flavors. Serve warm, with crusty bread and extra herbs.

A woman in a pink apron is smiling.
Published By Dina
Updated on Fri, 11 Jul 2025 17:36:01 GMT
A bowl of tomato fish soup with a lemon wedge on top. Bookmark
A bowl of tomato fish soup with a lemon wedge on top. | ioanacooks.com

This tomato fish soup transforms humble, whole fish and garden vegetables into a luxurious bowl of coastal comfort. By making your own fish stock from scratch and layering deeply savory, briny, and citrusy notes, you create a soup that matches anything served at seaside restaurants yet carries the heart of home cooking. The recipe honors traditions of sustainability and Mediterranean family cooking with each careful step.

The first time I made this with my grandmother’s garden vegetables and a haul from the fishmonger, I was not prepared for the depth of flavor it achieved. Now it is my first choice whenever we want to celebrate a special meal at home.

Ingredients

  • Mixed fresh fish like carp zander cod: Bring a variety for complex flavor and texture Look for bright clear eyes and firm flesh when buying fish
  • Carrots parsley root celeriac leek: Build sweetness and depth Choose roots that feel heavy with no soft spots
  • Onions: Used both for stock and soup Pick onions that are solid with dry skins One is charred for a smoky background
  • Bay leaves and allspice berries: Essential for aromatic warmth Whole spices are fresher
  • Cherry tomatoes: Added to the stock for acidity and a touch of sweetness Select plump tomatoes with shiny skins
  • Garlic: For savory undertones Use firm cloves with unbroken skins
  • Clarified butter plus extra cold butter: Essential for sautéing and finishing Seek out clarified butter for rich flavor without burning
  • Eggplant and zucchini: Bring silkiness and a garden-fresh feel Choose glossy skins and firm flesh
  • Fresh thyme: Gives an herbaceous note Use whole sprigs for easy removal
  • Homemade tomato purée: Core of the soup Select the ripest red tomatoes to make yours or pick the best jarred kind for full flavor
  • Fish sauce: Umami builder Choose a good Asian fish sauce with clean ingredients
  • Kaffir lime leaf: Infuses subtle citrus
  • Capers and caper brine: Add briny pop Rinse capers well for best flavor
  • Hot pepper such as chili: For gentle heat Look for brightly colored peppers
  • Lime parsley cilantro: All fresh on the finish Use only vibrant leaves
  • Lemon halves for grilling and lime wedges: For serving at the table Pick heavy firm fruit for juicing
  • Fish balls (Optional): Add substance to the bowl Use fish trimmings and fresh herbs

Step-by-Step Instructions

Prep and Fillet the Fish:
Carefully cut the fish into fillets keeping all bones heads trimmings and skin from zander. The whole fish will be used for stock and garnish. Keep fish cold to maintain freshness.
Char the Onion:
Place one onion directly over a gas flame or grill until the skin is blackened. This gives the stock a unique smoky flavor that sets this dish apart.
Make the Fish Stock:
Place all collected fish bones and trimmings into a large pot. Add carrots parsley root celeriac leek the charred onion cherry tomatoes bay leaves and allspice. Cover with cold water and bring up to a gentle simmer not a boil. Allow to cook for about forty five minutes to one hour skimming foam as needed. Strain well through a fine sieve to get a clear stock.
Prepare the Soup Base Vegetables:
Heat clarified butter in a heavy pot. Add chopped onion and sauté gently until translucent and fragrant but not browned. Add chopped garlic and cook until soft. Stir in diced eggplant and let it absorb the flavor and soften. Once eggplant is meltingly tender add zucchini and fresh thyme. Cook until veggies are just tender.
Deglaze and Build Flavor:
Pour in a ladle of fish stock to deglaze the pot scraping up any flavorful bits. Add tomato purée and fish sauce for deep umami. Add kaffir lime leaf capers and their brine then season with salt and pepper. Drop in the piece of hot pepper for gentle warmth.
Pan Sear the Fish:
Cube the fish fillets into substantial pieces and pat dry. Working in batches pan fry first the carp then zander and lastly the cod in clarified butter. Season each batch lightly with salt and pepper while cooking. Add a splash of white wine to the pan and let it evaporate then add a spoonful of cold butter for a glossy finish. Add chopped parsley and cilantro off the heat.
Combine and Simmer:
Transfer the cooked fish and their buttery juices into the soup pot with the vegetables. Simmer everything gently for about ten minutes letting the flavors marry. Taste and adjust seasoning. Right before serving swirl in a bit more cold butter for shine and flavor.
Optional Fish Balls:
If using grind any extra fish trimmings with herbs and seasonings then form into small balls. Poach in the simmering soup during this stage until cooked through.
Grill Lemon for Serving:
Cut lemons in half and grill cut side down in a hot dry pan until surface is dark and aromatic. This caramelizes the juice and adds a lovely finishing note.
Serve and Finish:
Ladle soup into warm bowls making sure each serving gets plenty of fish and vegetables. Garnish with fresh herbs lime or lemon wedges and thin slices of chili pepper. Offer grilled lemon halves for squeezing over the top.
A bowl of tomato fish soup with a lemon slice on top. Bookmark
A bowl of tomato fish soup with a lemon slice on top. | ioanacooks.com

You Must Know

My favorite part is always the final squeeze of caramelized grilled lemon on top. The aroma reminds me of family barbecues by the water and brings a memory of summer every time I serve this dish. My daughter always asks for extra capers at the table—it has become our little tradition.

Storage Tips

Cool the soup completely before refrigerating Store in an airtight container for up to two days Make sure to reheat only gently to avoid overcooking the fish and to keep the broth clear The soup also freezes well if packed in small batches with the fish separated from the broth to avoid mushy texture

Ingredient Substitutions

If you cannot find all the fish listed feel free to use any firm white fish such as haddock or sea bass For parsley root simply use extra carrot If no clarified butter is available use a blend of butter and light olive oil In place of kaffir lime leaf add a little grated lime zest for a similar aromatic lift

Serving Suggestions

Offer with rustic crusty bread or toasted sourdough Rub the cut surface of the bread with garlic for extra zing For a heartier meal add steamed new potatoes or cooked white beans at serving Finish bowls with a spoon of herbed olive oil or a swirl of extra tomato purée for color

A bowl of tomato fish soup with meatballs and vegetables. Bookmark
A bowl of tomato fish soup with meatballs and vegetables. | ioanacooks.com

Cultural Roots

This soup embodies classic Mediterranean techniques drawing on resourcefulness and respect for whole ingredients The use of homemade fish stock fresh herbs and charred onion is found in family seaside kitchens where stretching every morsel counts My grandfather often told stories of fishing in the Adriatic and using even the smallest catch to feed a crowd—this soup is a tribute to that spirit

Frequently Asked Questions About Recipes

→ What types of fish work best for tomato fish soup?

Choose mild, white-fleshed fish like carp, pike-perch, or cod. Using a variety adds depth and complements the tomato base. Make sure the fish is fresh for best flavor.

→ Why make homemade fish stock?

Homemade stock builds the soup’s flavor foundation, using bones and trimmings for richness and body. Charred onion adds complexity and a delicate smoky note.

→ How is the soup base prepared?

Sauté vegetables in clarified butter, add garlic and thyme, then tomato purée and fish sauce. This creates a savory, aromatic blend before adding the stock and fish.

→ What garnishes elevate this dish?

Top with grilled lemon halves for a sweet, tangy finish, sprinkle plentiful fresh herbs like cilantro and parsley, and offer lime wedges for a citrus lift.

→ Can I vary the vegetables or fish?

Absolutely! Swap in local fish or seasonal vegetables, such as fennel, potatoes, or even Asian greens. Just maintain the balance of flavors for best results.

Tomato Fish Soup Mediterranean Style

Rich tomato fish soup featuring bold Mediterranean flavors, fresh herbs, and sustainable cooking techniques.

Time Needed to Prep
45 minutes
Cooking Duration
70 minutes
Overall Time
115 minutes
Published By: Dina

Category of Recipe: Soups & Stews

Preparation Difficulty: Challenging

Type of Cuisine: Mediterranean

Number of Portions: 6 How Many It Serves (6 generous bowls)

Dietary Preferences: No Gluten

Ingredients You'll Need

→ Fish Stock

Ingredient 01 1.5 kg assorted whole fish (carp, zander, cod), filleted with heads, bones, and trimmings reserved
Ingredient 02 3 medium carrots, peeled
Ingredient 03 2 parsley roots or 2 additional carrots, peeled
Ingredient 04 0.5 celeriac root, peeled
Ingredient 05 1 leek, trimmed and cleaned
Ingredient 06 2 onions (1 whole, 1 for charring)
Ingredient 07 3 bay leaves
Ingredient 08 5 whole allspice berries
Ingredient 09 5 cherry tomatoes, halved
Ingredient 10 Salt and freshly ground black pepper, to taste

→ Soup Base

Ingredient 11 2 cloves garlic, finely chopped
Ingredient 12 2 tablespoons clarified butter, plus additional cold butter for finishing
Ingredient 13 1 small eggplant, diced
Ingredient 14 1 zucchini, roughly chopped
Ingredient 15 Fresh thyme sprigs
Ingredient 16 250 ml homemade tomato purée
Ingredient 17 1 tablespoon fish sauce
Ingredient 18 1 kaffir lime leaf
Ingredient 19 7 capers, rinsed
Ingredient 20 2 tablespoons caper brine
Ingredient 21 1 fresh hot chili pepper, chopped
Ingredient 22 0.5 lime, juiced
Ingredient 23 Fresh parsley, chopped
Ingredient 24 Fresh cilantro, chopped

→ For Serving

Ingredient 25 Lemon halves, for grilling
Ingredient 26 Lime wedges
Ingredient 27 Fresh chili pepper, thinly sliced
Ingredient 28 Fresh parsley or cilantro
Ingredient 29 Fish balls (optional, see instructions for preparation)

Steps to Follow

Step 01

Fillet the fish carefully, setting aside the heads, bones, and trimmings. Char one onion directly over an open flame until the skin blackens and blisters. Combine fish bones, heads, trimmings, carrots, parsley roots, celeriac, leek, charred onion, bay leaves, allspice, and halved cherry tomatoes in a large stockpot. Cover with cold water and bring gently to a simmer. Skim foam regularly and simmer for 45–60 minutes. Strain through a fine-mesh sieve, pressing solids to extract maximum flavor.

Step 02

Cut fish fillets into large, even cubes. Season lightly with salt and pepper. Reserve in refrigeration until needed.

Step 03

In a heavy-bottomed pot over medium heat, melt 2 tablespoons clarified butter. Add the chopped onion and cook until translucent and fragrant, without browning. Add the garlic, stirring until aromatic, then add another tablespoon of cold butter. Add diced eggplant and cook, stirring frequently, until softened. Add zucchini and fresh thyme; cook for a further 3 minutes.

Step 04

Pour in a ladle of hot fish stock to deglaze the pot, scraping up any browned bits. Add tomato purée, fish sauce, kaffir lime leaf, capers, caper brine, and chopped hot chili. Season to taste with salt and pepper. Simmer for 5–7 minutes, allowing flavors to meld.

Step 05

Heat a nonstick skillet with a drizzle of clarified butter over medium-high heat. Sear carp pieces first, cooking until just opaque. Follow by adding zander, then cod, in sequence. Each type should be cooked only until just firm. Season each batch during cooking.

Step 06

Once all fish is pan-fried, return to pan and pour in a splash of dry white wine. Allow wine to evaporate. Add 1 tablespoon cold butter to glaze the fish, then remove from heat. Mix in chopped parsley and cilantro.

Step 07

Gently transfer the seared fish and accumulated juices into the soup pot with the vegetable base. Simmer gently for 10 minutes over low heat. Add the lime juice and swirl in more cold butter for a glossy finish. Adjust seasoning if necessary.

Step 08

If using, process reserved fish trimmings into a paste. Season with salt, pepper, paprika, and finely chopped cilantro or lovage. Shape into small balls and poach in simmering soup until firm and cooked through.

Step 09

Heat a dry, ribbed pan over high heat. Place lemon halves cut side down and grill until charred and caramelized. Remove from heat and reserve for serving.

Step 10

Ladle soup into warmed bowls, ensuring an even distribution of fish and vegetables. Garnish with fresh herbs, a squeeze of lime, and thin chili slices. Serve with grilled lemon halves, lime wedges, and extra herbs on the side.

Extra Tips

  1. Maintain a gentle simmer when cooking fish to prevent tough texture.
  2. Charring the onion for the stock imparts complex, smoky depth.
  3. Add cold butter only at the end to achieve a glossy, restaurant-quality finish.
  4. Prepare and portion all ingredients before cooking for optimal flow and timing.

Tools You'll Need

  • Large stockpot
  • Fine-mesh sieve
  • Chef's knife
  • Cutting board
  • Nonstick skillet
  • Heavy-bottomed soup pot
  • Ribbed grill pan

Allergen Information

Carefully check food labels for allergens and consult an expert if you're uncertain.
  • Contains fish
  • Contains potential celery and celeriac allergens

Nutritional Information (Per Serving)

Remember, these values are for guidance only and shouldn't replace advice from a professional.
  • Calories Per Serving: 305
  • Total Fat: 14 grams
  • Carbohydrate Amount: 13 grams
  • Protein Amount: 34 grams