This comforting North African-inspired dish features tender white fish fillets braised in a rich, aromatic tomato sauce. The fish is first marinated with lemon and a blend of cumin, paprika, and turmeric, then gently simmered in a homemade sauce featuring onions, bell peppers, garlic, and warming Moroccan spices. The result is melt-in-your-mouth fish infused with complex flavors, perfect served over couscous or with crusty bread to soak up the spiced sauce. Ready in under an hour, this one-pan meal is both nourishing and deeply satisfying.
The first time I made this Moroccan fish, my kitchen smelled like a spice market I had once visited in Marrakesh. My neighbor knocked on the door, drawn by the cumin and paprika wafting through the hallway. That night, we ate it straight from the pan with torn pieces of crusty bread, and nobody spoke until the last bite was gone.
Last winter, when my sister was recovering from surgery and could barely stand at the stove, I taught her this one-pot method. She texted me the next day saying her family had already requested it twice that week. Theres something about fish braised in sauce that feels like being hugged from the inside out.
Ingredients
- 4 skinless white fish fillets: Cod, haddock, or halibut work beautifully here because they hold their shape while staying tender, about 150g each
- Juice of 1 lemon: This brightens everything and helps the fish absorb all those gorgeous spices
- 1 tsp salt and ½ tsp black pepper: Dont skip seasoning the fish before it hits the pan
- 2 tbsp olive oil for the marinade: This helps the spice rub cling to every inch of the fillets
- 2 garlic cloves, finely minced: Fresh garlic makes such a difference here than powder ever could
- 1 tsp ground cumin, 1 tsp sweet paprika, and ½ tsp ground turmeric: This trio is the backbone of Moroccan flavor, warm and earthy without being overwhelming
- 1 tbsp each chopped fresh cilantro and parsley: These herbs bring a fresh green counterpoint to the rich tomato sauce
- 2 tbsp olive oil for the sauce: A good foundation for building flavor
- 1 large onion, finely chopped: Take your time here, really getting them soft and sweet
- 1 red bell pepper, diced: Adds natural sweetness and a lovely pop of color
- 3 garlic cloves, minced: Because you can never really have too much garlic
- 1½ tsp ground cumin, 1 tsp paprika, ½ tsp ground coriander, and ¼ tsp cayenne: Layering the spices this way creates depth, not just heat
- 1 can (400 g) crushed tomatoes: The base of your sauce, so use a brand you actually like eating
- 2 tbsp tomato paste: This concentrates the tomato flavor and gives the sauce body
- 150 ml water: Just enough to loosen everything into a braising liquid
- 1 tsp sugar: A tiny bit of sugar balances the acidity of the tomatoes
- Salt and pepper to taste: Trust your palate here
- 1 bay leaf: Adds a subtle aromatic background note
- 2 tbsp each fresh cilantro and parsley: For that final burst of freshness right before serving
Instructions
- Start with the fish:
- Place your fillets in a shallow dish and drizzle them with lemon juice, salt, and pepper. Let them sit for about 10 minutes while you prep everything else.
- Make the spice rub:
- Whisk together the olive oil, garlic, cumin, paprika, turmeric, cilantro, and parsley in a small bowl until it forms a fragrant paste. Rub this mixture all over both sides of each fish fillet, getting into every nook and cranny.
- Build your sauce base:
- Heat the olive oil in a large deep skillet or Dutch oven over medium heat. Add the chopped onion and sauté for 4 to 5 minutes until its soft and translucent, taking your time to let it sweeten up.
- Add the peppers and spices:
- Toss in the diced red bell pepper and cook for another 3 minutes. Stir in the garlic, cumin, paprika, coriander, and cayenne, frying for just 1 minute until the spices bloom and become incredibly fragrant.
- Create the sauce:
- Pour in the crushed tomatoes, tomato paste, water, sugar, salt, pepper, and bay leaf. Bring everything to a gentle simmer and let it cook uncovered for about 10 minutes, stirring occasionally, until the sauce has thickened slightly.
- Nestle in the fish:
- Gently place the marinated fish fillets into the sauce, spooning some of that gorgeous tomato mixture over the top. Be careful not to break up the fish as you position it.
- Let it braise:
- Cover the pan and reduce the heat to low. Simmer for 12 to 15 minutes, checking after 10 minutes, until the fish is just cooked through and flakes easily with a fork.
- Finish and serve:
- Fish out the bay leaf and discard it. Scatter fresh cilantro and parsley over the top, bringing everything to the table in the same pan you cooked it in.
My daughter, who swore she hated fish for years, ate three helpings the first time I made this. Now she requests it for her birthday dinner every year, which I consider the highest compliment a recipe can receive.
What to Serve Alongside
Steamed couscous is the traditional choice because it soaks up that spiced tomato sauce like a dream. But fluffy white rice works just as well, and honestly, sometimes I just serve it with good crusty bread for dipping and calling it dinner.
Make It Your Own
Green olives stuffed with garlic add a briny punch that cuts through the richness of the sauce. Preserved lemon slices are another authentic addition that brings this incredible salty citrus brightness. Sometimes I throw in some roasted red peppers for extra sweetness.
Storing and Reheating
This actually tastes even better the next day as the spices meld and the sauce deepens. Store it in an airtight container in the fridge for up to 3 days, reheating gently over low heat with a splash of water to loosen the sauce.
- Fish can be fragile when reheating, so use a wide spatula and lift carefully
- The sauce may separate slightly when chilled but will come back together with gentle heat
- Never use high heat or the fish will toughen up immediately
Theres something so satisfying about a dish that looks and tastes like it came from a restaurant kitchen but comes together in under an hour. I hope this finds its way into your regular rotation too.
Recipe FAQs
- → What type of fish works best for braising?
-
White fish fillets like cod, haddock, halibut, or sea bass are ideal as they hold their shape well during braising and absorb flavors beautifully. Thicker fillets work best to prevent overcooking.
- → Can I make this dish spicier?
-
Absolutely. Increase the cayenne pepper to ½ teaspoon or add red pepper flakes to the tomato sauce. You can also serve with harissa paste on the side for those who enjoy extra heat.
- → What should I serve with this fish?
-
Steamed couscous is traditional and perfect for absorbing the sauce. You can also serve over fluffy rice, with warm crusty bread, or alongside roasted vegetables for a complete meal.
- → How do I know when the fish is done?
-
The fish is ready when it flakes easily with a fork and appears opaque throughout. Braising typically takes 12–15 minutes, but check a few minutes early to avoid overcooking.
- → Can I add preserved lemon?
-
Yes, thin slices of preserved lemon add authentic Moroccan flavor. Add them during the last 5 minutes of cooking to soften and infuse the sauce with their unique tangy, salty depth.
- → Is this dish suitable for meal prep?
-
The sauce actually improves overnight as flavors meld. Store in the refrigerator for up to 3 days and reheat gently—avoid boiling to prevent the fish from becoming tough.