Home Beef

Moroccan Meatball Tagine: Savor Tender Kefta in Rich Sauce

By Susan July 10, 2026
Pin

Tender, spiced Moroccan lamb and beef meatballs simmered in a rich, aromatic tomato sauce. This easy kefta tagine is pure comfort food, perfect for dipping crusty bread.

Moroccan Meatball Tagine: savor tender kefta in rich sauce
Why This Recipe Works:
  • Grated onion and its juices tenderize the meat, preventing the protein matrix from tightening into rubbery spheres.
  • Searing the meatballs first triggers the Maillard reaction, building a deep, savory flavor foundation that infuses the entire sauce.
  • Blooming the warm spices in hot oil coaxes out their oil-soluble flavor compounds for maximum aromatic impact.

I still remember the chipped blue clay tagine I bought at a flea market in Brussels, hauling it home in my lap like a fragile, heavy child.

The first time I tried to make kefta in it, my meatballs turned into rubbery, bounce-off-the-wall spheres of sadness.

Most home cooks overwork their meatball mixture, which activates the myosin proteins and creates a dense, bouncy protein matrix instead of a tender, melt-in-your-mouth bite.

Worse, they use lean meat that dries out instantly in the acidic tomato sauce.

The secret is a 50/50 blend of ground beef and lamb with at least 20% fat, combined with grated onion whose juices physically disrupt those tight protein bonds.

Grab your skillet.

We are going to simmer these spiced beauties until they are absolutely perfect, clinging to a rich, cumin-scented tomato sauce that begs for dipping.

Moroccan Meatball Tagine: Savor Tender Kefta in Rich Sauce

  • Cuisine Moroccan
  • Category Dinner, Main Course
  • Prep Time
  • Cook Time
  • Servings 4
  • Calories 420 calories
  • Rating 4.8 5071
  • Tags Moroccan Meatball Tagine, Kefta Tagine, Moroccan Meatballs, Kefta Recipe

Ingredients

  • 250g ground beef (80/20 lean-to-fat ratio)
  • 250g ground lamb
  • 1 small yellow onion, grated (juices retained)
  • 1/4 cup finely chopped fresh flat-leaf parsley
  • 1/4 cup finely chopped fresh cilantro
  • 1 tsp ground cumin
  • 1 tsp sweet paprika
  • 1/2 tsp ground coriander
  • 1/2 tsp cayenne pepper
  • 1.5 tsp Diamond Crystal kosher salt
  • Freshly cracked black pepper to taste
  • 2 tbsp extra virgin olive oil
  • 1 medium yellow onion, finely diced
  • 3 garlic cloves, minced
  • 1 tsp ground cumin (for the sauce)
  • 1 tsp sweet paprika (for the sauce)
  • 1/2 tsp ground ginger
  • 1/4 tsp ground cinnamon
  • 1 can (400g / 14 oz) crushed tomatoes
  • 1/2 cup chicken stock
  • 1 tsp sugar
  • 4 large eggs (optional)

Directions

  1. In a large bowl, combine the ground beef, ground lamb, grated onion with its juices, chopped parsley, cilantro, cumin, paprika, coriander, cayenne, Diamond Crystal kosher salt, and black pepper.
  2. Use your fingertips to gently mix the ingredients just until combined, being careful not to overwork the meat.
  3. Shape the mixture into small, golf-ball-sized meatballs (about 1.5 inches in diameter) and set them on a tray.
  4. Heat the olive oil in a large, deep skillet or tagine over medium-high heat.
  5. Add the meatballs in a single layer and sear for 2-3 minutes on each side until a golden-brown crust forms, then fish them out and set aside on a plate.
  6. Reduce the heat to medium, add the diced onion to the same pan, and cook for 5 minutes until soft and translucent.
  7. Stir in the garlic, cumin, paprika, ginger, and cinnamon, cooking for 1 minute until highly aromatic.
  8. Pour in the crushed tomatoes, chicken stock, and sugar, scraping up any browned bits from the bottom of the pan.
  9. Return the meatballs and any accumulated juices to the skillet, cover, and simmer gently over low heat for 15-20 minutes.
  10. If using eggs, make four small wells in the sauce, crack an egg into each, cover, and cook on low for 5-6 minutes until the whites are set but the yolks remain runny. Garnish with fresh herbs and serve.

Notes

  • Salt Conversion: This recipe specifies 1.5 teaspoons of Diamond Crystal kosher salt. If you are using Morton's kosher salt or fine sea salt, reduce the amount to 3/4 teaspoon to avoid over-salting.
  • The Onion Trick: Grating the onion instead of dicing it is non-negotiable. The sulfurous compounds and moisture in the onion juice physically interfere with the protein matrix of the meat, keeping the meatballs incredibly tender.
  • Spice Warning: When blooming your spices in the hot oil, do not walk away. Ground spices burn in a matter of seconds; have your crushed tomatoes opened and ready to pour in immediately to stop the cooking process.
  • Storage Behavior: Like most tomato-based stews, the sauce tastes even better the next day as the spices meld. However, if you plan to save leftovers, omit the poached eggs as they do not reheat well.

Serving Suggestions

To get the absolute most out of this rich, saucy dish, you need the right accompaniments to soak up every drop of that spiced tomato gravy.

  • Serve it with warm, fluffy pita bread to scoop up the tender meatballs and jammy egg yolks.
  • Pair it with a side of smoky Zaalouk eggplant dip for a complete, authentic Moroccan spread.
  • Spoon the meatballs and rich sauce over a bed of fragrant Greek Lemon Rice to catch all the juices.
  • Add a crisp, refreshing side salad like a simple cucumber and tomato toss to cut through the richness of the lamb.

Storage and Reheating

Store leftovers in an airtight container in the refrigerator for up to four days.

When reheating, do it gently on the stovetop over low heat, adding a splash of water or chicken broth to loosen the tomato sauce.

Just don't microwave the eggs.

Seriously, the yolks will turn chalky and rubbery, ruining that gorgeous jammy texture you worked so hard to achieve.

If you plan to freeze this dish, freeze the meatballs and sauce together in a freezer-safe container for up to three months, leaving the eggs out entirely until you are ready to reheat and serve.

Ingredient Substitutes

If you need to adapt this recipe based on what is in your pantry, here are the easiest swaps that won't sacrifice flavor:

  1. The Meat: If you don't eat lamb, you can use 100% ground beef, but ensure it is 80/20 ground chuck so the meatballs don't dry out. If you want a lighter option, you can adapt the sauce for Baked Eggplant Meatballs instead.
  2. The Spices: If you don't have ground ginger or cinnamon, a pinch of allspice or ras el hanout can step in to provide that signature warm, North African aroma.
  3. The Tomatoes: Canned whole peeled tomatoes crushed by hand work beautifully if you prefer a chunkier, more rustic sauce texture.

Tap your wooden spoon against the side of the pan, take a deep breath of that warm cumin and cinnamon aroma, and enjoy a comforting meal that feels like a warm hug. You've got this!

Susan Rosie Rosalind – Storied Skillet

Susan Rosie

Recipe Developer & Tester

I've spent over 12 years perfecting recipes so you can cook with confidence. Every dish on Storied Skillet is tested multiple times – because your dinner matters. I believe in simple ingredients, clear instructions, and big flavors.

Learn More About Me →