Kefta Tagine With Jalapeño Yogurt Sauce

Updated April 1, 2026

Media 1 of 1
Ready In
45 min
Rating
5(131)
Comments
Read comments

This tagine is a classic Moroccan dish of kefta, or minced meat, simmered in a gently spiced tomato sauce until tender and full of flavor. The base is built from simple, everyday ingredients — tomatoes, onions, garlic, paprika, cumin and herbs — that come together to create something deeply comforting. In Morocco, it’s common to crack eggs directly into the tagine alongside the meatballs as they finish cooking. Just move a few meatballs around to make space for the eggs before adding them. You can make it that way or skip the meat entirely and go for an all-egg version, similar to shakshuka. In that case, add the eggs at the same time you would the meatballs, cover and cook until they’re done to your liking. Either way, it’s a dish meant to be shared and scooped up with plenty of warm bread.

  • or to save this recipe.

  • Subscriber benefit: Give recipes to anyone

    As a subscriber, you have 10 gift recipes to give each month. Anyone can view them - even nonsubscribers. Learn more.

  • Share this recipe

  • Print this recipe

Advertisement


Ingredients

Yield:4 to 6 servings

For the tomato sauce

  • 2 tablespoons olive oil

  • 1 medium onion, finely chopped 

  • 3 garlic cloves, pressed or minced  

  • 1 ½ teaspoons ground paprika

  • 1 teaspoon ground cumin 

  • 1 (14-ounce) can crushed tomatoes 

  • 3 tablespoons finely chopped flat-leaf parsley

  • 3 tablespoons finely chopped cilantro 

  • ½ teaspoon sugar or honey (optional)

  • ¾ teaspoon fine sea salt or more to taste

  • ¼ teaspoon ground black pepper  

For the kefta

  • 1 pound ground beef (preferably 15 percent fat)

  • 1 medium onion, grated on the large holes of a box grater or finely chopped, with its juices

  • 1 ½ tablespoons finely chopped flat-leaf parsley

  • 1 ½ tablespoons finely chopped cilantro 

  • 2 teaspoons ground paprika

  • 1 teaspoon ground cumin

  • 1 teaspoon fine sea salt 

  • ¼ teaspoon ground black pepper

  • Pinch ground cayenne (optional)

  • Torn bread, for serving (optional)

For the Jalapeño-Yogurt Sauce

  • ⅔ cup plain Greek yogurt

  • 3 tablespoons milk of choice or water, plus more if needed 

  • 1 tablespoon olive oil

  • 1 ½ tablespoons finely chopped flat-leaf parsley, plus more for serving

  • 1 ½ tablespoons finely chopped cilantro 

  • 1 large or 2 small jalapeños, deseeded and finely chopped 

  • 2 garlic cloves, grated 

  • ¼ to ½ teaspoon fine sea salt, to taste

Ingredient Substitution Guide

Preparation

  1. Step 1

    Make the tomato sauce: Heat the olive oil in a large frying pan over medium-low heat. Add the onion, garlic, paprika and cumin and cook, stirring occasionally, until fragrant, 1 to 2 minutes.

    1. Step 2

      Add the crushed tomatoes, parsley, cilantro, sugar (if using), salt and pepper; adjust the heat to medium-high and bring to a simmer. Cover the pan, reduce the heat to low and simmer for 30 to 35 minutes, stirring every 10 to 15 minutes to prevent sticking, until the tomatoes have reduced to a fragrant, velvety sauce. If the sauce looks too dry at any point, gradually add tablespoons of water until saucy. 

    1. Step 3

      While the tomato sauce simmers, make the kefta: In a large bowl, add the ground beef, onion, parsley, cilantro, paprika, cumin, salt, pepper and cayenne (if using). Use your hands or a large spoon to mix the ingredients together and shape the kefta mixture into 1-inch-wide meatballs. (A 1-inch cookie scoop makes this go quickly.) Cover the meatballs and keep in the fridge until ready to use. (You can prepare the kefta mixture in advance, keep it in the fridge, and use it by the expiration date on the ground beef packaging.)

    1. Step 4

      Make the yogurt sauce: In a medium bowl, mix the sauce ingredients together. If the sauce doesn’t have a pouring consistency, gradually add a bit more milk or water. Taste and adjust the seasoning with salt if necessary. (Alternatively, place all the ingredients in a blender and purée for a smoother consistency.) 

    1. Step 5

      Once the tomato sauce is ready, add in the meatballs, cover the pan again and cook over medium-low for 10 to 12 minutes, until they’ve turned brown and are cooked through.  

    1. Step 6

      To serve, drizzle the yogurt sauce all over the tagine, garnish with additional parsley if desired, and serve immediately, with lots of bread on the side.

Private Notes

Leave a Private Comment on this recipe and see it here.

Ratings

5 out of 5
131 user ratings
Your rating

or to rate this recipe.

Have you cooked this?

or to mark this recipe as cooked.

Comments

Made as written, served with basmati rice. Enjoyed it a lot, but for our taste, it could have been spiced more aggressively, maybe increasing the amount of herbs. What we will definitely change next time is the yogurt sauce: instead of drizzling it over the tagine, keeping it aside and drizzling it over each helping on the plate.

I wonder if the sauce wouldn't have been richer if you'd cooked the meatballs in it?

Has anyone tried making this with ground lamb instead or beef? The spice/herb mix seems to tend towards lamb.

Do I see dill in the yogurt sauce?

Could this be adapted to the Instant Pot or slow cooker? If so, how?

I agree with the reviewer. Brown the meat first, remove from pan and follow up with sautéing the onions. Double the tomato sauce. If you like it spice, increase the spices. Definitely make again.

Private comments are only visible to you.

or to save this recipe.