This fragrant Moroccan-inspired dish features tender white fish fillets braised in a rich, spiced tomato sauce. The fish is first marinated with garlic, cumin, paprika, and fresh herbs, then gently simmered in a flavorful sauce made with tomatoes, bell peppers, and traditional Moroccan spices like coriander and turmeric.
The entire dish comes together in about 50 minutes, with most of the hands-off time allowing the fish to absorb the vibrant flavors of the sauce. Serve with couscous, rice, or crusty bread to soak up every drop of the aromatic sauce.
The first time I made this Moroccan fish, my kitchen filled with such incredible aromas that my neighbor actually knocked on the door to ask what I was cooking.
I served it to my family on a rainy Tuesday, and my usually picky sister-in-law asked for the recipe before shed even finished her first bite.
Ingredients
- White fish fillets: Cod, haddock, or halibut work beautifully because they hold their shape while staying tender in the sauce
- Lemon juice: This brightens the fish and helps the spices adhere better during marinating
- Ground cumin and paprika: These are the backbone of Moroccan flavor, so dont be shy with them
- Garlic: Fresh garlic makes all the difference here, both in the marinade and the sauce
- Crushed tomatoes: Use good quality canned tomatoes for the best sauce base
- Fresh herbs: The combination of cilantro and parsley at the end brings everything to life
Instructions
- Prepare the fish:
- Place fillets in a shallow dish and drizzle with lemon juice, salt, and pepper, letting them sit for about 10 minutes
- Make the marinade:
- Mix olive oil, minced garlic, cumin, paprika, turmeric, chopped cilantro, and parsley, then rub it generously over both sides of each fish fillet
- Start the sauce base:
- Heat olive oil in a large deep skillet or Dutch oven over medium heat, sauté the onion for 4 to 5 minutes until softened, then add the red bell pepper and cook for 3 more minutes
- Add the aromatics:
- Stir in the garlic, cumin, paprika, coriander, and cayenne, frying for just 1 minute until fragrant
- Build the sauce:
- Pour in crushed tomatoes, tomato paste, water, sugar, salt, pepper, and bay leaf, then bring to a simmer and cook uncovered for about 10 minutes until slightly thickened
- Cook the fish:
- Gently nestle the marinated fish into the sauce, spoon some sauce over the top, cover and simmer on low for 12 to 15 minutes until the fish flakes easily
- Finish and serve:
- Remove the bay leaf, sprinkle with fresh cilantro and parsley, and serve while steaming hot
This recipe has become my go-to when I want something that feels special but doesnt require me to be chained to the stove all evening.
Choosing the Right Fish
Ive learned that firmer white fish like halibut or cod work best because they dont fall apart when you flip them or spoon sauce over them.
Building Flavor Layers
The secret is blooming your spices in the hot oil before adding the tomatoes, which wakes up their essential oils.
Serving Suggestions
Steamed couscous or fluffy rice soaks up that gorgeous sauce perfectly.
- Crusty bread for mopping up the last bits of sauce
- A simple green salad with lemon vinaigrette on the side
- Preserved lemons or green olives for extra authentic flavor
Theres something deeply satisfying about watching a dish transform from simple ingredients into something that feels like a warm embrace on a plate.
Questions & Answers
- → What type of fish works best?
-
White fish fillets like cod, haddock, halibut, or sea bass are ideal. They hold their shape well during braising and absorb the spiced tomato sauce beautifully.
- → Can I make this dish ahead?
-
The tomato sauce can be made up to 2 days in advance and refrigerated. Reheat gently before adding the fish, as the fillets cook quickly and are best served immediately after braising.
- → How can I adjust the spice level?
-
The cayenne pepper is optional—omit it for a milder dish or increase to ½ teaspoon for more heat. You can also add harissa paste or red pepper flakes during the sauce preparation.
- → What sides pair well with this dish?
-
Steamed couscous is traditional, but fluffy rice, quinoa, or crusty bread work wonderfully. Roasted vegetables or a simple green salad balance the rich, saucy fish.
- → Can I use fresh tomatoes instead of canned?
-
Yes, use about 4–5 ripe tomatoes, blanched, peeled, and crushed. Canned tomatoes provide consistent flavor year-round, but fresh tomatoes work beautifully when in season.
- → How do I know when the fish is done?
-
The fish should flake easily with a fork and appear opaque throughout. Overcooking can make it dry, so check after 12 minutes of simmering.