A fragrant coastal Moroccan classic, this fish tagine layers tender white fish with potatoes, tomatoes, olives, and preserved lemon under a vibrant herb-and-spice marinade. The chermoula infuses every bite with warm cumin, smoky paprika, and bright cilantro-parsley freshness, all steamed gently in a clay vessel until the fish flakes apart in silky tomato sauce.
Prep Time20 mins
Cook Time35 mins
Total Time55 mins
Servings4
Yield4 servings
Nutrition Facts
Per serving (estimated)
- 465 kcalCalories
- 28 gFat
- 4 gSaturated Fat
- 22 gCarbs
- 4 gFiber
- 4 gSugar
- 32 gProtein
- 780 mgSodium
- 920 mgPotassium
- 110 mgCalcium
- 3 mgIron
- 28 mgVitamin C
- 950 mcgVitamin A
Ingredients
For the Chermoula Marinade
- 1 cup fresh cilantro leaves, packed
- 1/2 cup fresh flat-leaf parsley leaves
- 6 garlic cloves, roughly chopped
- 1 1/2 tsp ground cumin
- 1 tsp sweet paprika
- 1/2 tsp ground turmeric
- 1/2 tsp red pepper flakes, plus more to taste
- 1 tsp kosher salt
- 1/4 cup fresh lemon juice (about 1 large lemon)
- 1/3 cup extra-virgin olive oil
For the Tagine
- 1 1/2 lb skinless firm white fish (cod, halibut, or sea bass), cut into 2-inch chunks
- 2 tbsp olive oil
- 1 large yellow onion, thinly sliced
- 12 oz Yukon gold potatoes (3 medium), peeled and sliced 1/4-inch thick
- 2 large ripe tomatoes, grated on the large holes (or 1 can 14 oz crushed tomatoes)
- 1 preserved lemon, pulp discarded, rind thinly sliced
- 3/4 cup pitted Castelvetrano or other briny green olives
- 1/2 cup fish stock or water
- Kosher salt and freshly ground black pepper
- Fresh cilantro leaves and lemon wedges, to serve
Directions
- Make the chermoula: In a food processor, combine the cilantro, parsley, garlic, cumin, paprika, turmeric, red pepper flakes, salt, and lemon juice. Pulse to a coarse paste, then slowly stream in the olive oil until a thick, spoonable sauce forms.
- Marinate the fish: Place the fish chunks in a shallow bowl, spoon half of the chermoula over them, and turn gently to coat. Cover and refrigerate for 20 to 30 minutes while you prepare the vegetables; reserve the remaining chermoula.
- Build the base: Place a clay tagine (or heavy Dutch oven) over medium-low heat, add the olive oil, and cook the sliced onion for 4 to 5 minutes until softened but not browned.
- Layer the vegetables: Arrange the potato slices in an even layer over the onions, spoon the grated tomatoes over the potatoes, then scatter the preserved lemon strips and olives on top. Season lightly with salt and pepper.
- Add the fish and steam: Nestle the marinated fish pieces in a single layer among the vegetables. Drizzle the reserved chermoula over the fish and pour the fish stock carefully around the edges of the tagine, not directly over the fish.
- Cover and cook: Cover the tagine and cook over the lowest possible heat (use a heat diffuser if you are using clay on a gas burner) for 25 to 30 minutes, until the potatoes are tender when pierced and the fish flakes easily with a fork. Avoid lifting the lid during the first 15 minutes.
- Rest and serve: Remove from the heat and let the tagine rest, covered, for 5 minutes. Scatter fresh cilantro over the top and bring the tagine to the table; serve with crusty Moroccan bread or plain couscous and lemon wedges for squeezing.
Cook’s Notes
- If you do not own a clay tagine, a heavy Dutch oven or deep cast-iron skillet with a tight-fitting lid works well; just keep the heat on the lowest setting so the bottom layer of potatoes does not scorch.
- Choose firm-fleshed fish such as cod, halibut, or monkfish; delicate fillets like sole or tilapia tend to disintegrate during the long gentle steam.
- No preserved lemon? Simmer a wide strip of fresh lemon peel in the tomato sauce with a pinch of sugar and a small extra pinch of salt for a milder, salty-citrus stand-in.
- The chermoula can be made up to 3 days ahead and refrigerated; the flavors deepen overnight and any extra is excellent spooned over grilled lamb chops or roasted vegetables.
- If your tomatoes are bland, add 1 tsp tomato paste to the onion as it softens for a deeper, sweeter base.










