Kefte Tagine With Jalapeño Yogurt Sauce

Updated March 17, 2026

Media 1 of 1
Ready In
45 min
Rating
4(7)
Comments
Read comments

This tagine is a classic Moroccan dish of kefte, 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 kefte

  • 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 kefte: 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 kefte 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 kefte 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

4 out of 5
7 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.

The sauce was meh but the meatballs were great! Too little sauce for the amount of meatballs, and the sauce never really came together. I didn’t add the sugar and think I should have - the sauce needed a little sweetness. I baked the meatballs instead of cooking them in the sauce. Will make them again…not so sure about the sauce, which was pretty bland.

We were not fans of the raw jalapeños in the yogurt sauce.

My husband loved it. Will make again and will make meatballs ahead of time.

Private comments are only visible to you.

or to save this recipe.