Tajine Kefta b Bid (طاجين كفتة بالبيض) — Moroccan Meatballs in Tomato Sauce with Eggs
Tajine kefta b bid is a beloved Moroccan classic where spiced meatballs simmer in a rich tomato sauce, then eggs are gently poached on top. It’s traditionally cooked and served in a tagine, meant for sharing with warm bread at the table.

Printable Recipe Card
Servings: 4 · Total: 55 min · Difficulty: medium
Ingredients (quick list)
- 500 g ground beef (80/20) (or half beef, half lamb)
- 120 g yellow onion, grated (squeeze lightly to remove excess liquid)
- 20 g flat-leaf parsley, finely chopped
- 15 g cilantro, finely chopped
- 10 g garlic, minced
- 2 tsp ground cumin
- 2 tsp sweet paprika
- 1 tsp ground coriander
- 0.5 tsp ground black pepper
- 1.25 tsp fine sea salt
- 2 tbsp olive oil
- 150 g yellow onion, finely grated
+ 7 more in the full ingredients section below.
Steps (summary)
- Make the kefta mixture by combining the ground beef, grated onion, parsley, cilantro, minced garlic, cumin, paprika, coriander,…
- Shape the meat into 16 meatballs, about 30–32 g each, rolling them lightly so they stay tender rather than dense. Set them on a…
- Place a tagine base or wide lidded skillet over medium heat and add the olive oil and grated onion. Cook for 6–8 minutes, stirr…
- Stir in the minced garlic, paprika, cumin, turmeric, and cayenne and cook for 30 seconds to bloom the spices. Add the tomato pa…
- Add the crushed tomatoes, water, and salt, then bring the sauce to a gentle simmer. Partially cover and cook for 10 minutes, st…
- Nestle the meatballs into the simmering sauce in a single layer and spoon a little sauce over the tops. Cover and simmer gently…
+ 1 more steps in the full instructions section below.
Cultural Background
Kefta tajines are everyday Moroccan comfort food, often cooked in a clay tagine and eaten communally with bread. Adding eggs at the end is a signature touch, turning the bubbling tomato base into a complete, hearty meal.
Equipment
💡 Tips
- Keep the sauce at a gentle simmer (small bubbles) so the meatballs stay tender and the eggs poach evenly.
- If the sauce reduces too fast, add 30 ml water at a time and cover for 2 minutes to stabilize the simmer.
- For a deeper tomato flavor, cook the sauce 5 extra minutes uncovered before adding the meatballs.
⚠️ Common Mistakes
❌ Boiling the sauce rapidly, which makes meatballs tough and can split the sauce.
✅ Fix: Lower to a gentle simmer and partially cover; add 30 ml water if needed to keep the sauce loose.
❌ Overmixing or tightly packing the meatballs, leading to a bouncy texture.
✅ Fix: Mix only until cohesive and roll lightly; rest 10 minutes before shaping for easier handling.
❌ Overcooking the eggs until chalky yolks.
✅ Fix: Cover and check at 4 minutes; remove from heat when whites set because carryover heat finishes them.
🧊 How to Store
Cool leftovers within 2 hours, then refrigerate in a sealed container for up to 3 days. Reheat the meatballs and sauce covered over low heat with 30–60 ml water; cook eggs fresh when serving for the best texture.
📅 Make Ahead
Form the meatballs up to 24 hours ahead and refrigerate covered. The tomato sauce can be cooked 2 days ahead; reheat to a simmer, add meatballs to warm through, then poach the eggs right before serving.
🍽️ Pairs Well With
- Khobz (Moroccan bread)
- couscous
- olives
- preserved lemon salad
- simple cucumber-tomato salad.
Regional Variations
- Marrakesh-style: add 1 tsp (2 g) ground ginger and a pinch of saffron steeped in 15 ml warm water to the sauce.
- Coastal variation: add 80 g roasted bell pepper strips to the sauce for sweetness and extra body.
- Spicier café-style: increase cayenne to 0.5 tsp (1 g) or stir in 1 tsp (5 g) harissa with the tomato paste.
Ingredients
- 500 gground beef (80/20) (or half beef, half lamb)
- 120 gyellow onion, grated (squeeze lightly to remove excess liquid)
- 20 gflat-leaf parsley, finely chopped
- 15 gcilantro, finely chopped
- 10 ggarlic, minced
- 2 tspground cumin
- 2 tspsweet paprika
- 1 tspground coriander
- 0.5 tspground black pepper
- 1.25 tspfine sea salt
- 2 tbspolive oil
- 150 gyellow onion, finely grated
- 0.5 tspground turmeric
- 0.25 tspcayenne pepper (for gentle heat)
- 2 tbsptomato paste
- 600 gcrushed tomatoes (canned or fresh grated tomatoes)
- 120 mlwater
- 4eggs
- 10 gcilantro, chopped (for garnish)
🔄 Substitutions
- ground beef (80/20)→ ground lamb
- crushed tomatoes→ fresh tomatoes, grated
- cayenne pepper→ harissa paste
Instructions
- 1
Make the kefta mixture by combining the ground beef, grated onion, parsley, cilantro, minced garlic, cumin, paprika, coriander, black pepper, and salt in a bowl. Mix for 60–90 seconds until the mixture looks cohesive and slightly sticky, then rest it for 10 minutes so the aromatics perfume the meat.
- 2
Shape the meat into 16 meatballs, about 30–32 g each, rolling them lightly so they stay tender rather than dense. Set them on a plate and keep them at room temperature while you start the sauce, which helps them cook evenly.
- 3
Place a tagine base or wide lidded skillet over medium heat and add the olive oil and grated onion. Cook for 6–8 minutes, stirring often, until the onion softens and turns glossy without browning, because a sweet onion base is key to the sauce.
- 4
Stir in the minced garlic, paprika, cumin, turmeric, and cayenne and cook for 30 seconds to bloom the spices. Add the tomato paste and cook for 1 minute, stirring constantly, to deepen its flavor and remove any raw edge.
- 5
Add the crushed tomatoes, water, and salt, then bring the sauce to a gentle simmer. Partially cover and cook for 10 minutes, stirring every few minutes, until the sauce thickens enough to leave a brief trail when you drag a spoon through it.
- 6
Nestle the meatballs into the simmering sauce in a single layer and spoon a little sauce over the tops. Cover and simmer gently for 12 minutes, then uncover and simmer 3 more minutes, turning the meatballs once, until they are cooked through and the sauce is glossy.
- 7
Use a spoon to make 4 small wells 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 soft, then sprinkle with chopped cilantro and serve immediately with bread for scooping.
🪪 Recipe Passport
Cultural Background
Kefta tajines are everyday Moroccan comfort food, often cooked in a clay tagine and eaten communally with bread. Adding eggs at the end is a signature touch, turning the bubbling tomato base into a complete, hearty 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.
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

Khlea (خليع) — Moroccan Preserved Spiced Beef with Eggs
Moroccan · Main Courses · 285 min

Sardines Chermoula (سردين شرمولة) — Moroccan chermoula-marinated sardines, pan-fried
Moroccan · Main Courses · 37 min

Tanjia Marrakchia (طنجية مراكشية) — Moroccan Slow-cooked lamb in clay urn
Moroccan · Main Courses · 260 min

Iraqi Quzi (قوزي) — Spiced Lamb Over Timman Rice
Iraqi · Main Courses · 200 min

Kubba Mosul (كبة موصل) — Thin Iraqi Bulgur-Meat Discs with Spiced Filling
Iraqi · Main Courses · 125 min

Djej Bi Batata (دجاج ببطاطا) — Lebanese Chicken Stew with Potatoes and Garlic
Lebanese · Stews · 75 min

Valencian Paella (Paella Valenciana) — Saffron Rice with Rabbit, Chicken, and Beans
Spanish · Rice Dishes · 70 min

Brazilian Fish Moqueca (Moqueca) — Bahia-Style Coconut Seafood Stew
Brazilian · Stews · 55 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.