
I’ll be honest—I wasn’t expecting this Moroccan Meatballs Recipe to blow me away the way it did. The first time I made these richly spiced tender meatballs simmered in a fragrant tomato sauce, I was immediately transported to the colorful streets of Morocco.
The spices are just right, and every bite feels comforting yet adventurous. This recipe quickly became one of my go‑to dinners for family and friends. Trust me, once you try it, you’ll keep coming back for more!
You can also enjoy a Cheesy One-Pot Beef and Potatoes Recipe for another hearty dinner option or treat yourself after with a sweet Turtle Cheesecake Recipe for dessert.

Ingredients You’ll Need
For the Tomato Sauce
- 3 tablespoons olive oil – warms up and blooms the spices.
- 1 large yellow onion, finely chopped – adds sweetness and body.
- 2 teaspoons ground cumin – classic Moroccan earthy spice.
- 2 teaspoons sweet paprika – gentle color and depth.
- 1 teaspoon ground turmeric – golden hint and warmth.
- 1 teaspoon kosher salt – enhances all flavors.
- ½ teaspoon cinnamon – sweet spice for balance.
- ½ teaspoon Aleppo pepper or chili powder – subtle heat.
- ¼ teaspoon freshly ground black pepper – sharp spice bite.
- 2 pounds ripe tomatoes, chopped (or one quality 28‑oz can) – rich sauce base.
For the Meatballs (Kefta)
- 1 pound ground beef (or lamb) – rich and juicy base protein.
- 1 small yellow onion, grated – keeps meatballs tender.
- 2 large garlic cloves, minced – aromatic punch.
- 3 tablespoons fresh cilantro, chopped (plus extra for garnish) – bright herbal note.
- ¾ teaspoon kosher salt – savory seasoning.
- A few grinds black pepper – bold spice.
- 1 tablespoon sweet paprika – extra warm flavor.
- 1 ½ teaspoons ground cumin – ties sauce and meat together.
- ½ teaspoon Aleppo pepper or chili powder – gentle heat kick.
Note: several servings – this recipe generously serves about 4–5 people.
Variations to Try
If you want to switch things up or adapt this recipe for different diets, here are some fun options:
- Lamb Lovers: Swap beef for ground lamb for richer, more traditional flavor.
- Spicy Heat: Add extra Aleppo pepper or a pinch of cayenne for a bolder kick.
- Vegetarian Twist: Use plant‑based ground meat and add cooked lentils for texture.
- Tomato Base Swap: Use fire‑roasted canned tomatoes for a smoky sauce.

Cooking Time
Here’s how long it takes to make this from start to finish:
- Prep Time: 20 minutes
- Cooking Time: 40 minutes
- Total Time: 1 hour
Equipment You Need
- Large heavy pot – to build and simmer the tomato sauce evenly.
- Skillet or frying pan – perfect for browning meatballs if you choose.
- Mixing bowl – to gently combine meatball ingredients without overworking.
- Knife and chopping board – for prepping fresh herbs and veggies.
How to Make Moroccan Meatballs
Make the Tomato Sauce
Start by heating oil in a large pot and sauté the chopped onion until soft. Add the warm spices and toast them for a couple of minutes to release their aromas. Then pour in the chopped tomatoes, cover, and let the sauce gently simmer for about 20 minutes.
Prepare the Meatball Mixture
While the sauce simmers, combine the ground beef (or lamb) with grated onion, garlic, cilantro, and spices in a bowl. Mix just until everything comes together–don’t overwork it or the meatballs can become dense.
Form and Cook the Meatballs
Shape the mixture into small balls about the size of ping‑pong balls. You can sauté them in a little oil to brown all sides or add them into the sauce raw. Gently simmer them in the sauce for about 15 minutes, uncovered but at a very low heat to keep the meat tender.
Additional Tips for Making This Recipe Better
From my own kitchen experiments, here are a few extra nuggets that really improved this dish:
- Always toast the spices in oil first—this step unlocks more aroma than just stirring them in dry.
- If your tomatoes are too acidic, a teaspoon of sugar balances the sauce beautifully.
- Browning the meatballs before adding them keeps them juicier and less likely to disintegrate.
- Let the dish rest for 10 minutes before serving; it deepens the flavor.
How to Serve Moroccan Meatballs Recipe
This dish is versatile and stunning when plated: spoon meatballs over fluffy couscous or warm rice and ladle plenty of sauce on top. Sprinkle extra fresh cilantro or parsley right before serving for a vibrant look. Serve with a wedge of lemon or dollops of yogurt alongside crisp artisan bread to soak up every drop of the delicious sauce.

Nutritional Information
Here’s what you’re getting in a serving of these soul‑warming meatballs:
- Calories: Approximately 310–320 per serving
- Protein: Around 28 g – great source of hearty protein
- Carbohydrates: Around 17–18 g – primarily from tomatoes and onions
- Fat: Around 15 g – from meat and olive oil
Make Ahead and Storage
Storing
This recipe keeps very well! After cooking, let everything cool to room temperature then transfer to an airtight container. It will stay fresh in the fridge for up to 3–4 days.
Freezing
You can freeze both sauce and meatballs separately or together in freezer‑safe containers. Properly frozen, they’ll last up to 3 months. Just thaw overnight before reheating.
Reheating
Warm gently on the stovetop over low heat, adding a splash of water if the sauce has thickened. Keep stirring occasionally so the meatballs heat evenly and stay moist.
Why You’ll Love This Recipe
Here are a few reasons this Moroccan Meatballs dish is sure to become a favorite:
- Bursting with warm spices and rich aroma—every bite feels like a flavorful journey.
- Easy one‑pot dinner that’s perfect for weeknights or entertaining guests.
- Flexible recipe adaptable to meat choices and spice levels.
- Comes together quickly but tastes like you’ve been slow‑cooking all day.
- Great served with many sides—couscous, rice, bread, or even roasted veggies.

Moroccan Meatballs Recipe
Ingredients
Method
- Start by heating oil in a large pot and sauté the chopped onion until soft. Add the warm spices and toast them for a couple of minutes to release their aromas. Then pour in the chopped tomatoes, cover, and let the sauce gently simmer for about 20 minutes.
- While the sauce simmers, combine the ground beef (or lamb) with grated onion, garlic, cilantro, and spices in a bowl. Mix just until everything comes together–don’t overwork it or the meatballs can become dense.
- Shape the mixture into small balls about the size of ping‑pong balls. You can sauté them in a little oil to brown all sides or add them into the sauce raw. Gently simmer them in the sauce for about 15 minutes, uncovered but at a very low heat to keep the meat tender.
Notes
- Always toast the spices in oil first—this step unlocks more aroma than just stirring them in dry.
- If your tomatoes are too acidic, a teaspoon of sugar balances the sauce beautifully.
- Browning the meatballs before adding them keeps them juicier and less likely to disintegrate.
- Let the dish rest for 10 minutes before serving; it deepens the flavor






