Kefta Tagine with Eggs (طاجين الكفتة بالبيض) — Moroccan Meatballs in Tomato Sauce
Kefta tagine is a beloved Moroccan classic: spiced meatballs simmered in a rich tomato sauce, then finished with eggs cracked on top. It’s traditionally cooked and served in a tagine, perfect for scooping with bread at the table.

Printable Recipe Card
Servings: 4 · Total: 55 min · Difficulty: medium
Ingredients (quick list)
- 500 g ground beef (85% lean) (or half beef, half lamb)
- 120 g yellow onion, grated
- 15 g fresh parsley, finely chopped
- 15 g fresh cilantro, finely chopped
- 10 g garlic, finely grated
- 2 tsp ground cumin
- 2 tsp sweet paprika
- 1 tsp ground coriander
- 0.25 tsp ground cinnamon (optional but traditional in some homes)
- 1.25 tsp fine salt
- 0.5 tsp black pepper
- 2 tbsp olive oil
+ 9 more in the full ingredients section below.
Steps (summary)
- Make the kefta mixture: In a bowl, combine the ground beef, grated onion, parsley, cilantro, grated garlic, cumin, paprika, cor…
- Shape the meatballs: With damp hands, form 20 meatballs, about 25 g each, and set them on a plate. Keep them uniform so they co…
- Start the sauce base: Heat the olive oil in a tagine base or wide skillet over medium heat, then add the diced onion and cook f…
- Bloom the spices: Add cumin, paprika, turmeric, and cayenne to the onions and stir continuously for 30–45 seconds. This brief t…
- Simmer the tomato sauce: Add crushed tomatoes, tomato paste, water, salt, and black pepper, then stir well to dissolve the past…
- Cook the meatballs in the sauce: Nestle the meatballs into the simmering tomato sauce in a single layer, spacing them evenly. C…
+ 2 more steps in the full instructions section below.
Cultural Background
Kefta tagine is a staple of Moroccan home cooking, often served bubbling at the center of the table for communal eating with bread. The eggs cracked into the sauce are a signature finish, turning a simple tomato braise into a celebratory, comforting meal.
Equipment
💡 Tips
- For extra-tender meatballs, mix the meat just until cohesive and avoid overworking it beyond 90 seconds.
- If the sauce tastes sharp, simmer it 5 more minutes uncovered to concentrate sweetness and mellow acidity.
- Keep the simmer gentle; a hard boil can break the meatballs and make the eggs rubbery.
⚠️ Common Mistakes
❌ Boiling the sauce aggressively after adding meatballs
✅ Fix: Keep the heat at a gentle simmer; if it starts bubbling hard, lower the heat and partially cover to control evaporation.
❌ Overcooking the eggs until chalky
✅ Fix: Cover and check at 4 minutes; remove from heat when whites are set because carryover heat will continue cooking.
❌ Meatballs falling apart in the sauce
✅ Fix: Chill the shaped meatballs for 10 minutes and avoid stirring; instead, spoon sauce over them to coat.
🧊 How to Store
Cool leftovers within 2 hours, then refrigerate in an airtight container for up to 3 days. Reheat gently in a covered pan over low heat with 30 ml water; add fresh eggs only when reheating if you want runny yolks.
📅 Make Ahead
Form the meatballs up to 24 hours ahead and refrigerate covered. The tomato sauce can be simmered 2 days ahead; reheat gently, then add meatballs and cook until done before cracking in the eggs.
🍽️ Pairs Well With
- Khobz (Moroccan bread)
- couscous
- olive salad
- preserved lemons
- mint tea.
Regional Variations
- Marrakesh-style: add 1 tsp ras el hanout to the sauce for a more perfumed spice profile.
- Coastal variation: mix 1 tbsp chopped preserved lemon peel into the sauce for bright, salty citrus notes.
- Spicy café version: add 2 tsp harissa and finish with extra olive oil for a punchier, redder sauce.
Ingredients
- 500 gground beef (85% lean) (or half beef, half lamb)
- 120 gyellow onion, grated
- 15 gfresh parsley, finely chopped
- 15 gfresh cilantro, finely chopped
- 10 ggarlic, finely grated
- 2 tspground cumin
- 2 tspsweet paprika
- 1 tspground coriander
- 0.25 tspground cinnamon (optional but traditional in some homes)
- 1.25 tspfine salt
- 0.5 tspblack pepper
- 2 tbspolive oil
- 150 gyellow onion, finely diced
- 12 ggarlic, minced
- 0.5 tspground turmeric
- 0.25 tspcayenne pepper (for gentle heat)
- 800 gcanned crushed tomatoes
- 2 tbsptomato paste
- 120 mlwater
- 4eggs
- 10 gfresh cilantro leaves (for garnish)
🔄 Substitutions
- ground beef (85% lean)→ ground lamb
- cayenne pepper→ harissa
- canned crushed tomatoes→ fresh ripe tomatoes, grated
Instructions
- 1
Make the kefta mixture: In a bowl, combine the ground beef, grated onion, parsley, cilantro, grated garlic, cumin, paprika, coriander, cinnamon, salt, and black pepper. Mix for 60–90 seconds until the mixture looks cohesive and slightly sticky, which helps the meatballs hold together.
- 2
Shape the meatballs: With damp hands, form 20 meatballs, about 25 g each, and set them on a plate. Keep them uniform so they cook at the same rate, then refrigerate them for 10 minutes while you start the sauce.
- 3
Start the sauce base: Heat the olive oil in a tagine base or wide skillet over medium heat, then add the diced onion and cook for 6–8 minutes until soft and lightly golden. Stir in the minced garlic and cook for 30 seconds, just until fragrant.
- 4
Bloom the spices: Add cumin, paprika, turmeric, and cayenne to the onions and stir continuously for 30–45 seconds. This brief toasting deepens the flavor and prevents the spices from tasting raw in the finished sauce.
- 5
Simmer the tomato sauce: Add crushed tomatoes, tomato paste, water, salt, and black pepper, then stir well to dissolve the paste. Bring to a gentle simmer, reduce heat to medium-low, and cook uncovered for 10 minutes, stirring every few minutes until slightly thickened.
- 6
Cook the meatballs in the sauce: Nestle the meatballs into the simmering tomato sauce in a single layer, spacing them evenly. Cover and cook for 12 minutes, then gently spoon sauce over the tops and cook uncovered for 5–7 minutes until the meatballs are cooked through and the sauce is glossy.
- 7
Add the eggs: Use the back of a spoon to make 4 small wells in the sauce between the meatballs, then crack one egg into each well. Cover and cook for 4–6 minutes until the whites are set and the yolks are still slightly runny, or cook 8 minutes for firmer yolks.
- 8
Finish and serve: Scatter cilantro leaves over the top and let the tagine rest for 2 minutes so the sauce settles. Serve immediately straight from the cooking vessel, spooning meatballs, tomato sauce, and egg onto plates with bread for dipping.
🪪 Recipe Passport
Cultural Background
Kefta tagine is a staple of Moroccan home cooking, often served bubbling at the center of the table for communal eating with bread. The eggs cracked into the sauce are a signature finish, turning a simple tomato braise into a celebratory, comforting meal.
Regional Variations
Researched from multiple sources and validated by the Zaffaron editorial team. Every recipe is tested for accuracy, measurements, and cultural authenticity.
Nutrition per serving
Pairs well with
If you enjoyed this recipe, here are a few related Zaffaron recipes to try next.
- Rfissa (رفيسة) — Moroccan Shredded Flatbread with Chicken and Lentils
- Lamb Mrouzia (المروزية) — Moroccan Festive Honeyed Lamb with Raisins and Almonds
- Moroccan Carrot Salad (سلطة الجزر المغربية) — Spiced Carrot Salad with Cumin and Orange Blossom
- Moroccan Orange and Cinnamon Salad (سلطة البرتقال بالقرفة) — Fresh citrus dessert with floral spice
Does your family make this differently?
Every family has their own version. Maybe your grandmother adds a secret ingredient, or your aunt has a completely different technique. Preserve your family's version — with their name on it, forever.
You Might Also Like

Zemita (زمّيطا) — Moroccan Roasted Flour Energy Porridge
Moroccan · Desserts · 30 min

Ras El Hanout Chicken (رأس الحانوت) — Moroccan Spiced Roasted Chicken with Aromatic Blend
Moroccan · Main Courses · 95 min

Calentica (كالنتيكا) — Moroccan Chickpea Flan Street Food, Peppery and Warm
Moroccan · Side Dishes · 60 min

Kale with Pinkel Sausage (Grünkohl mit Pinkel) — North German Winter Stew
German · Stews · 130 min

Pinakbet (Pinakbet) — Ilocano Vegetable Stew with Bagoong
Filipino · Stews · 60 min

Lebanese Tabbouleh (تبولة لبنانية) — Parsley Bulgur Herb Salad
Lebanese · Salads · 35 min

Spanish Ham Croquettes (Croquetas de Jamón) — Crisp Tapas with Creamy Ham Béchamel
Spanish · Appetizers · 70 min

Shakarob (Шакароб) — Tajik Tomato-Onion Bread Salad
Tajik · Salads · 25 min
Reviews
Cooked this recipe?
Tap the stars to rate it — that's all it takes. A few words are welcome but optional.
No ratings yet. Cooked this one? Be the first to rate it — it takes one tap.