clock clock iconcutlery cutlery iconflag flag iconfolder folder iconinstagram instagram iconpinterest pinterest iconfacebook facebook iconprint print iconsquares squares iconheart heart iconheart solid heart solid icon
black and white decorative bowl filled with 6 Moroccan meatballs in tomato sauce, with chopped parsley sprinkled on top and a few forks in the background

Moroccan Meatballs

  • Author: Lisa
  • Total Time: 1 hour
  • Yield: 4-5 1x


Well-spiced beef (or lamb) meatballs simmered in aromatic tomato sauce. A flavor-packed meatball dish that makes a great main course. Serve with a salad and a side of rice, couscous or bread. (whole30, gluten-free and Paleo)


Units Scale

For The Tomato Sauce:

  • 3 tablespoons olive oil or vegetable oil
  • 1 large yellow onion, finely chopped
  • 2 teaspoons ground cumin
  • 2 teaspoons paprika (sweet, not hot)
  • 1 teaspoon ground turmeric
  • 1 teaspoon kosher salt
  • 1/2 teaspoon cinnamon
  • 1/2 teaspoon Aleppo pepper or chili powder
  • 1/4 teaspoon freshly ground black pepper
  • 2 pounds of ripe tomatoes, chopped (or use a 28-ounce can of tomato puree or crushed tomatoes - see notes below)

For The Meatballs (Kefta)

  • 1 pound ground beef
  • 1 small yellow onion, grated
  • 2 large garlic cloves, pressed through a garlic press or finely minced (2 teaspoons garlic)
  • 1 bunch of fresh cilantro, leaves and tender stems chopped, divided
  • 3/4 teaspoon kosher salt
  • A few grinds of black pepper
  • 1 tablespoon paprika (sweet, not hot)
  • 1 1/2 teaspoons ground cumin
  • 1/2 teaspoon Aleppo pepper or chili powder


  1. Heat oil over medium heat in a large heavy pot and sauté onions for 5 minutes, stirring often, until they start to soften. Add the spices: cumin, paprika, turmeric, salt, cinnamon, chili pepper and black pepper, and sauté for 2 minutes, stirring, to toast the spices. Add the chopped tomatoes, bring sauce to a simmer, and cook at the lowest possible simmer, covered, for 20 minutes.
  2. While the sauce is simmering, use your hands to gently combine the ground beef (or lamb) with the grated onion, garlic, 3 tablespoons of chopped cilantro and spices: salt, black pepper, paprika, cumin and Aleppo (or chili powder); roll gently into small, ping pong ball sized balls. (Makes about 20-25 meatballs).
  3. Heat 1 tablespoon of vegetable oil in a skillet over medium heat and sauté the meatballs for 5-6 minutes, turning often, to brown them on all sides. (browning the meatballs is optional but recommended. See notes, below)
  4. When the sauce has cooked for 20 minutes, add the meatballs, cover the pot, and cook the meatballs for 15 minutes at the lowest possible simmer. Cooking on low heat is crucial for tender meatballs. Stir in 2-3 tablespoons of remaining chopped cilantro just before serving.


Make this with canned tomatoes: You can use a 28-ounce can of good quality imported plum tomato puree or crushed tomatoes, in place of fresh tomatoes. The sauce will be a little more acidic, however you can balance the acidity by adding a little butter or olive oil and a pinch or two of sugar.

Brown the meatballs first or add them to the sauce raw: You can keep with tradition and add the raw meatballs directly to the sauce without sautéing them first. I tried this method and, while the end result was delicious, the meatballs were a little tough. Sautéing them first seals them and keeps them juicier and more tender.

  • Prep Time: 20 min
  • Cook Time: 40 min
  • Category: Dinner
  • Method: simmer
  • Cuisine: Moroccan

Keywords: Homemade beef (or lamb) meatballs and fresh tomato sauce