I love finding weeknight recipes that feel like special occasion meals without demanding extra time in the kitchen.
This Moroccan fish recipe fits perfectly, filling your home with an aroma of warm spices and citrus while creating a vibrant, flavorful dinner in under 30 minutes. We pair tender white fish with a rich, aromatic tomato sauce, then finish it with a bright, restaurant-quality golden sauce for incredible depth. It’s a hearty, healthy, one-pot meal that transforms simple ingredients into something truly memorable for the whole family. The secret is a quick-and-easy two-part preparation process that builds layers of flavor. Get ready to elevate your dinner rotation with this simple yet sophisticated dish.

Ingredients
- Firm White Fish Fillets (600 g / 1.3 lbs): Use thick fillets like cod, halibut, snapper, or tilapia; avoid delicate fish that might flake apart too quickly during poaching. Pat them thoroughly dry before seasoning to promote even cooking and prevent a watery final dish. The firm texture holds up well in the simmering sauce.
- Olive Oil (30 ml / 2 tablespoons): Used for sautéing the base aromatics; choose a good quality extra virgin olive oil for flavor in the tomato base. This provides the necessary fat for toasting the spices and developing the initial flavors. Another 45 ml (3 tablespoons) is reserved for the finishing sauce to create its luxurious texture.
- Aromatics and Spices: 1 large onion (finely chopped), 3 cloves garlic (minced), 2 cm fresh ginger (grated), 15 ml sweet paprika, 5 ml ground cumin, 2.5 ml ground turmeric, 1 ml cayenne pepper (optional). These form the foundation of the Moroccan flavor profile, providing warmth and depth to the tomato sauce. The spices need to be toasted briefly to release their full aroma before adding liquids.
- Canned Crushed Tomatoes (400 g / 14.5 oz) and Water/Broth (250 ml / 1 cup): The base for poaching the fish; use high-quality canned tomatoes for sweetness and acidity. Vegetable broth can be used instead of water for extra savory depth in the sauce (I use broth when I have it in the fridge). The ratio creates a saucy, stew-like consistency that perfectly envelops the fish.
- Preserved Lemons (rind only, finely diced, 1/2 preserved lemon; whole preserved lemon, rind and pulp, roughly chopped, 1 whole preserved lemon): The star ingredient that adds complex tang and umami to both sauces. The diced rind adds salty-citrus flavor directly to the tomato sauce, while the whole preserved lemon creates the base for the bright finishing sauce. Ensure you use preserved lemons, not fresh, as they provide a unique fermented flavor (if you cannot find preserved lemon, substitute with the zest of one fresh lemon and 1/2 teaspoon of salt).
- Green Olives (60 g / ½ cup): Pitted and halved; these add a briny, salty counterpoint to the sweetness of the tomatoes and spices. Choose a mild, buttery green olive like Castelvetrano if available; avoid intensely salty ones. They add texture and an authentic Mediterranean touch to this hearty Moroccan fish recipe.
- Fresh Herbs (Cilantro and Parsley, 30 g / ¼ cup each): Used extensively for both cooking and garnish to provide freshness and color. Cilantro brings a bright, earthy note, while parsley adds a clean flavor. A small amount of cilantro is blended into the saffron sauce, and the rest is stirred into the main dish at the end.
- Saffron Threads (pinch / 20-30 threads) and Hot Water (30 ml / 2 tablespoons): Saffron provides a luxurious golden color and subtle floral aroma to the finishing sauce. Blooming the threads in hot water first releases their color and flavor more effectively. This step is crucial for achieving the vibrant golden hue of the final sauce drizzle for this Moroccan fish recipe.
- Saffron Sauce Components (additional): 1 clove garlic, 45 ml olive oil, 15 ml fresh lemon juice, 5 ml honey or agave syrup (optional). These ingredients are blended with the saffron and preserved lemon to create a smooth, creamy, and balanced finishing sauce. The optional honey balances the tartness and enhances the overall flavor profile.
Instructions
- Prep the Fish and Aromatics: Pat fish fillets dry with paper towels; season lightly with salt and black pepper. Finely chop the onion, mince the garlic, and grate the ginger; prepare the preserved lemon (dicing the rind for the stew and roughly chopping the whole fruit for the sauce). Set aside the herbs and olives.
- Build the Tomato Sauce Base: Heat 30 ml (2 tablespoons) olive oil in a wide pan or pot over medium heat. Add the chopped onion and sauté for 5–7 minutes until translucent. Stir in the minced garlic and grated ginger; cook for 1 minute until fragrant. Add the sweet paprika, ground cumin, ground turmeric, and cayenne pepper; cook, stirring constantly, for 30 seconds to toast the spices.
- Simmer the Stew: Pour in the crushed tomatoes and water (or vegetable broth). Bring to a gentle simmer, then reduce the heat to low, cover, and cook for 10 minutes to allow the flavors to meld. Use this time to prepare the finishing sauce ingredients. This step ensures the spices fully hydrate and infuse the sauce base.
- Prepare the Saffron-Preserved Lemon Sauce: While the tomato sauce simmers, bloom the saffron threads in 30 ml (2 tablespoons) hot water in a small bowl for 5 minutes. In a food processor or blender, combine the roughly chopped whole preserved lemon (rind and pulp), 1 clove garlic, bloomed saffron (with soaking water), 45 ml olive oil, lemon juice, and honey (if using). Process until very smooth and creamy, then stir in a portion of the fresh chopped cilantro; taste and adjust salt. I often prepare this sauce in my small blender cup while the main stew simmers to save time on busy weeknights, making this a truly quick and easy dinner idea.
- Poach the Fish: Gently nestle the seasoned fish fillets into the simmering tomato sauce. Scatter the finely diced preserved lemon rind and halved green olives around the fish. Cover the pan and continue cooking on low heat for 8–12 minutes, or until the fish is opaque and flakes easily with a fork. Be careful not to overcook the fish, as it will dry out quickly. If the sauce seems too thick during poaching, add a splash of water or broth.
- Finish and Serve: Stir in the remaining fresh cilantro and parsley into the tomato sauce around the fish. Carefully transfer the fish fillets and generous portions of the rich, red tomato sauce to a serving platter. Generously drizzle the bright Saffron-Preserved Lemon Sauce over the top of each fillet; garnish with remaining fresh herbs and serve immediately. This family-friendly Moroccan fish recipe is best enjoyed warm with crusty bread for dipping.
Make-Ahead and Storage Tips for Moroccan Fish
Reheating leftovers: Leftover moroccan fish reheats well on the stovetop over low heat, but be careful not to overcook the fish. Reheating in a small amount of sauce helps keep the fish moist. The saffron sauce can be refrigerated separately and drizzled on just before serving.
Storing leftovers: Store in an airtight container in the refrigerator for up to 3 days. The flavors actually deepen overnight. It can be frozen for up to 2 months; thaw in the refrigerator overnight before reheating gently.
Meal prep: The tomato base (steps 1-3) for this moroccan fish recipe can be prepared up to 2 days ahead and stored in the refrigerator. When ready to serve, simply heat the sauce and add the fish for poaching. This significantly reduces the cook time on a busy weeknight.

What to Serve with Moroccan Fish
- Couscous or Rice: The classic pairing for a Moroccan dish. Couscous soaks up the flavorful tomato sauce perfectly and provides a quick, easy side dish. Steamed basmati or jasmine rice also works beautifully. When planning a family dinner, serving this moroccan fish recipe with couscous creates a complete, healthy meal.
- Crusty Bread: Serve with warm crusty bread for dipping into the rich sauce; it’s essential for a satisfying meal. French bread, pita bread, or a simple flatbread are all excellent choices.
- Vegetables: A side of lightly steamed green beans or roasted broccoli provides a good green counterpoint. Alternatively, serve with a simple side salad dressed with lemon and olive oil to cut through the richness.
FAQs
What kind of fish works best for this moroccan fish recipe?
Firm white fish like cod, snapper, halibut, or tilapia are ideal. Avoid delicate fish like flounder, which will disintegrate in the sauce. You need a fish that holds its shape during simmering.
Is preserved lemon necessary, or can I use fresh lemon instead?
Preserved lemon is crucial here; it provides a unique salty, fermented flavor that fresh lemon cannot replicate. If you cannot find preserved lemon, you may omit it, but the flavor profile will be different. I find that fresh lemon just doesn’t deliver the same complex depth for this kind of dish.
How do I store preserved lemons once I open the jar?
Once opened, keep preserved lemons in the jar with their brine, stored in the refrigerator. They will last for many months if kept submerged in the liquid. This helps maintain their quality for future use in recipes like this one.
How can I make this dish less spicy?
Simply omit the cayenne pepper in the spice mixture. If a mild, gentle heat is still desired for this family-friendly meal, reduce the amount of cayenne to a small pinch.
What is the purpose of the separate saffron sauce for this moroccan fish recipe?
The saffron sauce adds a bright, tangy, and slightly floral finishing touch that contrasts beautifully with the warm, savory tomato base. It elevates the dish from a simple stew to a more complex, layered meal.
Can I substitute the saffron?
Saffron adds a very distinct flavor, but if unavailable, you can omit it. You can still make the preserved lemon sauce without it, though it will lack the signature golden color and floral notes.
Conclusion
This moroccan fish recipe is truly a weeknight showstopper that’s both quick to prepare and deeply satisfying. The combination of rich tomato sauce and bright saffron-preserved lemon drizzle makes for a truly unique flavor experience.
Save this recipe on Pinterest so you can always find this healthy, family-friendly meal when you need it.
Print
moroccan fish recipe
- Total Time: 30 minutes
- Yield: 4 servings
- Diet: General
Description
A vibrant, flavorful Moroccan fish recipe featuring tender white fish poached in an aromatic tomato sauce, finished with a bright saffron-preserved lemon drizzle, ready in under 30 minutes.
Ingredients
- 600 g firm white fish fillets (cod, halibut, snapper, or tilapia)
- 30 ml olive oil (for sauce base)
- 1 large onion, finely chopped
- 3 cloves garlic, minced
- 2 cm fresh ginger, grated
- 15 ml sweet paprika
- 5 ml ground cumin
- 2.5 ml ground turmeric
- 1 ml cayenne pepper (optional)
- 400 g canned crushed tomatoes
- 250 ml water or vegetable broth
- 0.5 preserved lemon rind, finely diced (for stew)
- 1 whole preserved lemon (rind and pulp), roughly chopped (for finishing sauce)
- 60 g green olives, pitted and halved
- 0.25 cup fresh cilantro, chopped (divided)
- 0.25 cup fresh parsley, chopped (divided)
- pinch saffron threads (20-30 threads)
- 30 ml hot water (for blooming saffron)
- 1 clove garlic (for finishing sauce)
- 45 ml olive oil (for finishing sauce)
- 15 ml fresh lemon juice
- 5 ml honey or agave syrup (optional)
- salt and black pepper to taste
Instructions
- Prep Fish and Aromatics: Pat fish fillets dry with paper towels; season lightly with salt and black pepper. Finely chop onion, mince garlic, and grate ginger; prepare preserved lemon (dicing the rind for the stew and roughly chopping the whole fruit for the sauce). Set aside the herbs and olives.
- Build Tomato Sauce Base: Heat 30 ml olive oil in a wide pan or pot over medium heat. Add the chopped onion and sauté for 5–7 minutes until translucent. Stir in the minced garlic and grated ginger; cook for 1 minute until fragrant. Add the sweet paprika, ground cumin, ground turmeric, and cayenne pepper; cook, stirring constantly, for 30 seconds to toast the spices.
- Simmer the Stew: Pour in the crushed tomatoes and water (or vegetable broth). Bring to a gentle simmer, then reduce the heat to low, cover, and cook for 10 minutes to allow the flavors to meld. Use this time to prepare the finishing sauce ingredients.
- Prepare Saffron-Preserved Lemon Sauce: While the tomato sauce simmers, bloom the saffron threads in 30 ml hot water in a small bowl for 5 minutes. In a food processor or blender, combine the roughly chopped whole preserved lemon (rind and pulp), 1 clove garlic, bloomed saffron (with soaking water), 45 ml olive oil, lemon juice, and honey (if using). Process until very smooth and creamy, then stir in a portion of the fresh chopped cilantro.
- Poach the Fish: Gently nestle the seasoned fish fillets into the simmering tomato sauce. Scatter the finely diced preserved lemon rind and halved green olives around the fish. Cover the pan and continue cooking on low heat for 8–12 minutes, or until the fish is opaque and flakes easily with a fork.
- Finish and Serve: Stir in the remaining fresh cilantro and parsley into the tomato sauce around the fish. Carefully transfer the fish fillets and generous portions of the rich, red tomato sauce to a serving platter. Generously drizzle the bright Saffron-Preserved Lemon Sauce over the top of each fillet; garnish with remaining fresh herbs and serve immediately.
Notes
Use firm white fish like cod or halibut; pat fish dry before seasoning. If you cannot find preserved lemon, substitute with the zest of one fresh lemon and 0.5 teaspoon of salt. Do not overcook the fish; it should flake easily with a fork. Serve with crusty bread for dipping to soak up the sauce.
- Prep Time: 10 minutes
- Cook Time: 20 minutes
- Category: Main Course
- Method: Stovetop
- Cuisine: Moroccan
Nutrition
- Serving Size: 1 fillet with sauce
- Calories: 320 calories
- Sugar: 5 g
- Sodium: 400 mg
- Fat: 16 g
- Saturated Fat: 2 g
- Unsaturated Fat: 14 g
- Trans Fat: 0 g
- Carbohydrates: 5 g
- Fiber: 2 g
- Protein: 30 g
- Cholesterol: 50 mg
FREE PRINTABLE RECIPE
Get the Printable Recipe PDF (Free)
Enter your email and we’ll send you the ingredients + step-by-step instructions as a clean PDF you can save to your phone.
- ✅ Printable PDF (ingredients + steps)
- ✅ Save it to your phone (no long scrolling)
- ✅ Includes cook time + servings
- ✅ Easy to follow
FAQ
Where’s the full recipe?
It’s delivered as a printable PDF so you can save it and cook without scrolling.
I didn’t get the email.
Check Spam/Promotions and search your inbox for your site name. Then click Confirm to receive the PDF.