Moroccan Meatballs Recipe with Harissa and Preserved Lemon

Moroccan Kefta meatballs—tender spiced beef balls simmered with tomatoes and green olives—are an easy, exotic dinner you can prepare in a slow cooker, Instant Pot, or on the stove. This Whole30-friendly, gluten-free, and Paleo-adaptable recipe relies on warm Moroccan spices like cumin, paprika and cinnamon for a fragrant, satisfying meal.

Moroccan Kefta Meatballs made with tomatoes and olives are simmered together in the slow cooker or Instant Pot in this easy and exotic Moroccan dinner.
Moroccan Meatballs

Traditionally called kefta, Moroccan meatballs are often prepared in a tagine, but a slow cooker or pressure cooker works perfectly for a busy weeknight. The spice blend—sweet and hot paprika, cumin, a touch of cinnamon—adds depth without heavy heat. Fresh parsley and cilantro brighten the dish at the end, and a handful of chopped green olives contributes a subtle briny note that pairs beautifully with the tomato-based sauce. This recipe uses lean ground beef, but you can easily substitute ground turkey for a lighter option.

Moroccan Kefta Meatballs made with tomatoes and olives are simmered together in the slow cooker or Instant Pot in this easy and exotic Moroccan dinner.Moroccan Kefta Meatballs made with tomatoes and olives are simmered together in the slow cooker or Instant Pot in this easy and exotic Moroccan dinner.Moroccan Kefta Meatballs made with tomatoes and olives are simmered together in the slow cooker or Instant Pot in this easy and exotic Moroccan dinner.

Hi—I’m Heather K. Jones, a registered dietitian and wellness coach and co-author of the Skinnytaste cookbooks. I developed this variation of kefta to be simple, family-friendly, and compatible with multiple eating styles. If you’re also navigating emotional eating or body-image challenges, I offer resources and support focused on mindful, sustainable food habits.

My husband and I spent several months traveling in Morocco years ago, and the flavors and food culture made a lasting impression. This kefta recipe is one of our North African favorites at home, along with a classic chicken-and-olive tagine that shares many of the same savory-sour elements.

How To Make Moroccan Meatballs on the Stove

To make this on the stove, follow the same ingredient proportions and combine the sauce ingredients in a large pot or Dutch oven. Add the meatballs, bring to a gentle simmer, then cover and cook on low until the meatballs are tender, about 35 to 40 minutes. Stir occasionally and adjust seasoning to taste. Serve with cauliflower rice or cooked brown rice.

Moroccan Meatballs Variations and Tips

  • Protein swaps: Use ground turkey or lamb instead of beef for a different flavor profile.
  • Don’t overwork the meat: Mix ingredients until just combined and form meatballs gently to keep them tender.
  • Storage: Refrigerate leftovers for up to four days. Reheat gently on the stove or in the microwave.
  • Freezing: Freeze cooled meatballs and sauce in an airtight container. Thaw in the refrigerator overnight before reheating.
  • Serving ideas: Serve over cauliflower rice, brown rice, couscous, or with crusty bread to soak up the sauce.

Moroccan Kefta Meatballs made with tomatoes and olives are simmered together in the slow cooker or Instant Pot in this easy and exotic Moroccan dinner. Moroccan Kefta Meatballs made with tomatoes and olives are simmered together in the slow cooker or Instant Pot in this easy and exotic Moroccan dinner. Moroccan Kefta Meatballs made with tomatoes and olives are simmered together in the slow cooker or Instant Pot in this easy and exotic Moroccan dinner. Moroccan Kefta Meatballs made with tomatoes and olives are simmered together in the slow cooker or Instant Pot in this easy and exotic Moroccan dinner.

More Meatball Recipes You May Enjoy:

  • Salisbury Steak Meatballs
  • Turkey Meatball Stroganoff
  • Chicken Marsala Meatballs
  • Asian Turkey Meatballs with Lime & Sesame
  • Italian Turkey Meatballs

Moroccan Meatballs

Moroccan Kefta Meatballs made with tomatoes and olives are simmered together in the slow cooker or Instant Pot in this easy and exotic Moroccan dinner. Whole30, gluten-free and Paleo.

Yield: 4 servings | Serving Size: 5 meatballs with sauce

Calories: 334 kcal per serving. Protein: 36 g • Carbs: 18 g • Fat: 15 g • Fiber: 6 g

Ingredients

For the sauce:

  • 1 onion, chopped
  • 2 (14-ounce) cans no-salt-added diced tomatoes
  • 1½ teaspoons sweet paprika
  • 1½ teaspoons ground cumin
  • 1 teaspoon kosher salt (adjust to taste)
  • ½ teaspoon hot paprika (or less, to taste)
  • ¼ teaspoon freshly ground black pepper
  • ½ cup green olives, chopped

For the meatballs:

  • 1 pound 93% lean ground beef
  • ½ cup finely diced onion
  • 2 teaspoons paprika
  • 1½ teaspoons ground cumin
  • ½ teaspoon ground cinnamon
  • 1 teaspoon kosher salt
  • ¼ teaspoon freshly ground black pepper
  • ¼ teaspoon hot paprika
  • 2 tablespoons chopped fresh parsley
  • ¼ cup chopped fresh cilantro, divided (reserve 2 tablespoons for garnish)
  • Cauliflower rice or cooked brown rice, for serving (optional)

Instructions

Slow Cooker Directions

  1. Place the chopped onion in a microwave-safe bowl and microwave for about 2 minutes to soften, or sweat the onion in a skillet with a touch of oil until translucent.
  2. Combine the softened onion, diced tomatoes, sweet paprika, cumin, kosher salt, hot paprika, black pepper, and chopped olives in the slow cooker; stir to combine the sauce.
  3. In a large bowl, gently mix the ground beef with the finely diced onion, paprika, cumin, cinnamon, salt, black pepper, hot paprika, parsley, and most of the cilantro, reserving 2 tablespoons for garnish. Mix just until combined—do not overwork the meat.
  4. Form the mixture into 20 small meatballs, handling them lightly so they remain tender.
  5. Nestle the meatballs on top of the sauce in a single layer if possible. Cover and cook on low for 4 to 6 hours or on high for 2 to 3 hours, until the meatballs are cooked through and tender.
  6. Garnish with the remaining cilantro and serve over cauliflower rice, brown rice, or your preferred side.

Instant Pot Directions

  1. Set the Instant Pot to Sauté and spray the insert lightly with oil. Add the chopped onion and sauté 3 to 5 minutes until softened.
  2. Add the diced tomatoes, sweet paprika, cumin, salt, hot paprika, black pepper, and chopped olives; stir to combine and scrape any browned bits from the bottom.
  3. In a bowl, gently combine the meatball ingredients as above, reserving cilantro for garnish, and form into 20 small meatballs.
  4. Arrange the meatballs on top of the sauce. Secure the lid and set to cook at high pressure for 15 minutes, then allow a natural pressure release.
  5. Open the pot, sprinkle with the reserved cilantro, and serve over cauliflower rice or brown rice if desired.

Stove-Top Directions

Combine sauce ingredients in a large pot or Dutch oven and bring to a simmer. Add gently formed meatballs, cover, and simmer on low for 35–40 minutes until cooked through and tender. Stir occasionally and adjust seasoning as needed.

Notes

  • For best texture, form the meatballs with light hands and don’t pack them tightly.
  • If using canned tomatoes with added salt, reduce added kosher salt to taste.
  • Leftovers refrigerate well for up to four days and can be frozen for longer storage.

Nutrition

Per serving (5 meatballs with sauce): approximately 334 calories, 36 g protein, 18 g carbohydrates, 15 g fat, 6 g fiber. Nutrition values are estimates and will vary based on specific ingredients and serving sizes.

Last step: If you try this recipe, please leave a comment and rating to share your feedback—it helps others discover and enjoy these flavors.