Moroccan Fish Tagine
A fragrant North African stew with tender fish, warm spices, and briny olives. This one-pot dish brings exotic flavors to your table in under 45 minutes.
- Total time
- 40 min
- Servings
- 4
- Calories
- 310
- Protein
- 38g
Ingredients
- 3 tablespoons extra-virgin olive oil
- 1 whole large yellow onion
- 4 whole garlic cloves
- 1 whole fresh ginger, 1-inch piece
- 1 teaspoon ground cumin
- 1 teaspoon ground coriander
- ½ teaspoon sweet paprika
- ½ teaspoon ground turmeric
- ¼ teaspoon pinch of cayenne pepper
- 14 ounces diced tomatoes with juices, canned
- 1 cup low-sodium vegetable broth
- ¾ cup green olives, pitted
- ½ cup dried apricots, halved
- ¼ whole preserved lemon, sliced thin
- 1.5 pounds skinless white fish fillets (cod, halibut, or sea bass)
- ¼ cup fresh cilantro, roughly chopped
- 1 pinch kosher salt
- 1 pinch freshly ground black pepper
Instructions
- 1
Pour 3 tablespoons of extra-virgin olive oil into a large (12-inch) tagine or Dutch oven and set it over medium heat. Let it warm for 1 minute until shimmering but not smoking.
- 2
While the oil heats, dice 1 large yellow onion into 1/4-inch pieces — aim for uniform size so it cooks evenly. Add the onion to the hot oil and sauté, stirring occasionally, until translucent and the edges just begin to turn golden, about 5-6 minutes. You'll smell the sweetness developing as the natural sugars caramelize.
- 3
Peel and finely mince 4 garlic cloves. Peel a 1-inch piece of fresh ginger and grate it on a microplane or fine grater. Add both to the onions and stir constantly for 30 seconds until fragrant — stop before the garlic begins to brown, which would make it bitter.
- 4
Sprinkle in 1 teaspoon ground cumin, 1 teaspoon ground coriander, 0.5 teaspoon sweet paprika, 0.5 teaspoon ground turmeric, and a pinch of cayenne pepper. Stir constantly for 1 minute to toast the spices and release their oils — you should smell warm, earthy aromas filling the air.
- 5
Pour in one 14-ounce can of diced tomatoes with their juices and 1 cup of low-sodium vegetable broth. Scrape the bottom of the pot with a wooden spoon to release any browned bits — this builds depth of flavor. Bring to a gentle simmer over medium heat.
- 6
Stir in 0.75 cup of green olives and 0.5 cup of dried apricot halves. Slice 0.25 of a preserved lemon into thin slices and add it to the pot. Simmer, uncovered, for 8-10 minutes, stirring occasionally, until the apricots soften slightly and the flavors meld. The sauce should smell deeply aromatic and complex.
- 7
Pat 1.5 pounds of skinless white fish fillets (cod, halibut, or sea bass) completely dry with paper towels — this prevents sticking. Season both sides generously with kosher salt and freshly ground black pepper.
- 8
Nestle the fish fillets into the simmering sauce, positioning them so they are mostly submerged. Do not stir — let them gently poach undisturbed. Reduce heat to medium-low and cook uncovered for 8-10 minutes, until the fish is opaque and flakes easily with a fork when pressed gently at the thickest part. The fish should be just cooked through — overcooked fish becomes dry and falls apart.
- 9
Remove from heat and scatter 0.25 cup of fresh cilantro, roughly chopped, over the top. Taste a spoonful of the sauce and adjust seasoning with additional salt and pepper if needed — remember the olives and preserved lemon are salty, so go easy.
- 10
Spoon into shallow bowls, making sure each portion gets fish, sauce, olives, and apricots. Serve hot or warm alongside couscous, rice, or crusty bread for soaking up the fragrant sauce.
Tools you’ll need
- 12-inch tagine or Dutch oven
- wooden spoon
- microplane grater or fine grater
- sharp knife and cutting board
- paper towels
- shallow serving bowls
Cook smarter
Get matched recipes for what’s in your fridge
CookSnap is a free iOS app that finds real recipes from the ingredients you already have. No more grocery-list aspirations.



