Moroccan Charmoula Tomato Fish Sauce

A bright, garlicky Moroccan-style tomato sauce built on charmoula, the herb and spice blend of cilantro, paprika, cumin and preserved lemon. Briny olives go in as it simmers, and firm white fish poaches gently in the sauce until flaky.

Prep
20 min
Cook
37 min
Wait
17 min
Total
1 hr 14 min
Makes
About 4 cups sauce with 4 fish portions
Share

Steps

Before you start
  • Preserved lemon and olives are both salty, so hold back on added salt until the final tasting.
  • Pat the fish dry and let it sit out of the fridge about 15 minutes so it cooks evenly.
  • Rinse the preserved lemon under cold water, discard the pulp, and use only the rind.
  • Use a wide, deep skillet or sauté pan with a lid (12-inch/30 cm) so the fish sits in a single layer.
  1. Make the charmoula

    • In a small bowl, stir together the cilantro, parsley, garlic, minced preserved lemon rind, paprika, cumin, cayenne (if using), lemon juice and ¼ cup (60 ml) olive oil.
    • Divide it in half: one half goes into the sauce and the other half is stirred in at the end for freshness.
    + Show details

    Ready when: Looks like a coarse, oily, bright green-red paste.

    Tip: Chop the herbs by hand rather than using a processor so the texture stays fresh and not pasty.

  2. Season the fish

    • Pat the fish portions very dry with paper towels.
    • Sprinkle with ½ tsp of the salt and a little pepper on both sides.
    • Set on a plate and leave at room temperature while you make the sauce.
    + Show details

    Ready when: Surface is slightly moist and glossy from the salt.

  3. Soften the onion

    • Heat 2 tbsp olive oil in the 12-inch skillet over medium heat.
    • Add the diced onion and a pinch of salt.
    • Cook, stirring often, for 6 to 8 minutes.
    + Show details

    Ready when: Onion is soft and translucent with only a hint of gold, not browned.

    Tip: If it starts to brown, lower the heat; browned onion makes the sauce taste heavier.

  4. Bloom the spices

    • Add half of the charmoula and the tomato paste to the onion.
    • Stir constantly for 1 to 2 minutes so the garlic and spices release their aroma and the paste darkens slightly.
    + Show details

    Ready when: Smells strongly of cumin and garlic and the paste turns brick red.

    Tip: Don't let the garlic scorch; add the tomatoes immediately if it sizzles hard.

  5. Simmer the tomatoes

    • Pour in the crushed tomatoes, water and sugar.
    • Bring to a bubble, then reduce the heat to medium-low and simmer uncovered for 12 to 15 minutes, stirring now and then.
    + Show details

    Ready when: Sauce is thick enough that a spoon dragged across the bottom leaves a trail that closes slowly.

    Tip: Partially cover if it spatters.

  6. Add the olives

    • Stir in the halved olives and simmer 2 minutes.
    • Taste and add salt only if needed, plus pepper.
    • The olives and preserved lemon are salty, so go lightly.
    + Show details

    Ready when: Sauce tastes rich, savory and balanced, not sharply acidic.

    Tip: If it tastes sharp, add another pinch of sugar.

  7. Poach the fish

    • Nestle the fish portions into the sauce in a single layer and spoon some sauce over the tops.
    • Cover and cook gently for 8 to 10 minutes, depending on thickness.
    + Show details

    Ready when: Fish is opaque throughout, flakes easily with a fork, and reads 145°F (63°C) in the thickest part.

    Tip: Keep the heat low; a hard boil makes the fish tough and breaks it apart.

  8. Finish and serve

    • Turn off the heat.
    • Drizzle the remaining charmoula over the fish and sauce and let stand, covered, 2 minutes.
    • Serve straight from the pan with crusty bread, couscous or rice.
    + Show details

    Ready when: Herbs are glossy and still bright green on top.

    Tip: Adding the second half of the charmoula off the heat keeps its herb flavor vivid.

Good to know

Tips
  • Rinse preserved lemon well and use only the rind; the pulp is very salty and can overwhelm the sauce.
  • Hold back the second half of the charmoula until the end for a fresh, herbal contrast to the cooked sauce.
  • Check the fish at 8 minutes; thin fillets overcook quickly.
  • For a smoother sauce, blend it briefly with an immersion blender before adding the olives and fish.
Make ahead

"The sauce (through step 6) can be made up to 3 days ahead and refrigerated. Keep the second half of the charmoula separate, covered, for up to 2 days. Reheat the sauce to a gentle simmer, then poach the fish."

Storage & reheating

Room temperature: no more than 2 hours. Fridge: store fish and sauce in an airtight container up to 2 days. Freezer: the sauce alone freezes up to 3 months; cooked fish is best eaten fresh. Reheat gently in a covered pan over low heat until just warmed through, adding a splash of water if needed.

Substitutions
  • preserved lemon → Zest of 1 lemon plus an extra ¼ tsp salt. Less complex and fermented in flavor, but still bright.
  • green olives → Castelvetrano or Kalamata olives. Kalamata makes the sauce deeper and fruitier.
  • firm white fish fillets (cod, halibut or haddock), about 1 inch thick → Salmon, shrimp or large peeled shrimp. Shrimp needs only 4 to 5 minutes; salmon should reach 145°F (63°C).
  • canned crushed tomatoes → 1¾ lb (800 g) ripe tomatoes, grated, skins discarded. Simmer an extra 5 to 10 minutes for a similar thickness.

More stews

See all →

Find more like this

Meal
Dinner
Cuisine
Moroccan
Main ingredient
CodHalibutTomatoes
Method
Stovetop
Quick & Easy
Easy

Reviews (0)