(serves ~4, can stretch or shrink)
Ingredients
For the meatballs
1 lb (≈ 450 g) ground meat — beef, lamb, or a mix (80/20 fat is good)
½ of a small yellow onion, finely grated or minced
2 garlic cloves, minced
2–3 tbsp fresh herbs: parsley and/or cilantro, finely chopped
1 tsp ground cumin
1 tsp paprika (sweet, not smoked)
¼ tsp cinnamon
Pinch of cayenne or red pepper flakes (adjust heat)
Salt & pepper, to taste
For the sauce
2 tbsp olive oil
1 medium onion, chopped
1 bell pepper (green or red), chopped (optional but nice)
3 garlic cloves, minced
1½ tsp “Moroccan spice blend” (see below)
1 28-oz (800 g) can crushed tomatoes or tomato purée / passata
½ cup water or stock (chicken or vegetable)
Salt & pepper, to taste
Optional: olives (green or Kalamata), preserved lemon bits, additional herbs
Moroccan Spice Blend (if you don’t have a pre-mixed one)
2 tsp paprika
2 tsp ground cumin
½ tsp ground turmeric
½ tsp ground cinnamon
¼ tsp ground black pepper
Pinch of cayenne
Instructions
Make the meatball mix
In a bowl, combine ground meat + grated onion + minced garlic + chopped herbs + cumin + paprika + cinnamon + cayenne + salt & pepper. Mix gently until just combined. Avoid overworking.
Form into small meatballs — cocktail sized (about 1–1½ Tbsp each) is ideal.
Start the sauce base
In a large, deep skillet or Dutch oven over medium heat, warm the olive oil. Add the chopped onion (and bell pepper, if using) and sauté until softened, ~4–5 min.
Add the garlic and the Moroccan spice blend, stir for ~30 seconds until fragrant (don’t burn).
Add tomatoes & simmer
Stir in the crushed tomatoes + water (or stock). Bring to a gentle simmer, reduce heat, and let simmer uncovered for ~10–15 min to slightly thicken and allow flavors to meld.
Cook the meatballs
Gently nestle the meatballs into the sauce, spacing them out. Cover partially (lid slightly ajar). Let the meatballs poach in the sauce for ~10–12 min (or until cooked through). Turn gently once if needed so all sides get sauced.
Finish & adjust
Taste and adjust seasoning (salt, pepper). You can stir in a handful of olives or bits of preserved lemon for extra acidity and pop.
Garnish with fresh herbs (parsley or cilantro) before serving.
Serve
Offer with couscous, steamed rice, quinoa, or crusty bread to soak up the sauce. A simple green salad on the side also works well.
⏱ Timing & Tips to Save Time
While the sauce simmers, shape the meatballs (parallel tasks).
Use canned crushed tomatoes to save time (versus prepping fresh).
Keep your meatballs small — that shortens cooking time.
Use a deep, wide pan so the sauce is shallow — ensures better contact and faster cooking.
If you brown the meatballs lightly before adding (sear in pan), you’ll get a bit more texture, but it’s optional.
Variations & Extras to Try
Add sweetness / dried fruit: Some versions use raisins or chopped apricots to echo North African sweet-savoury profiles. (See the lamb-meatball version with tomato-raisin sauce)
Bowl of Delicious
Eggs: In the traditional Moroccan tagine version, some like to crack eggs into the sauce (after meatballs are partially cooked) and let them poach, like shakshuka + kefta hybrid.
Taste of Maroc
+1
Olives / preserved lemon: Adding these components near the end gives nice brightness and complexity.
More heat: Increase the cayenne or add harissa, chili paste, or fresh chiles.
Smooth sauce: If you prefer a smoother finish, use an immersion blender partway through before adding meatballs.