
This hearty Moroccan meatballs recipe transforms ordinary ground meat into an exotic feast with warm spices and cool yogurt sauce. The combination creates a perfect balance of flavors that transports you straight to a Moroccan kitchen without requiring special ingredients.
I first made these meatballs for a dinner party where guests were expecting the same old appetizers. The moment they bit into these spiced meatballs with the cooling yogurt sauce, the room went quiet before everyone started asking for the recipe.
Ingredients
- Ground beef or lamb 500g provides the perfect base. Using a mix of both creates the most authentic flavor profile
- Fresh garlic adds essential aromatic notes. Look for firm bulbs without any sprouting
- Grated onion incorporates moisture and sweetness. Yellow onions work best here
- Fresh herbs parsley and cilantro brighten the flavor. Always choose bunches with vibrant color
- Ground cumin adds earthy warmth. Toast whole seeds and grind them yourself for maximum flavor
- Paprika brings subtle sweetness. Spanish varieties offer the most complex flavor
- Ground coriander contributes citrusy notes that complement the meat beautifully
- Cinnamon and allspice add the signature Moroccan warmth. Use fresh spices for best results
- Cayenne pepper introduces gentle heat. Adjust according to your preference
- Greek yogurt creates a thick creamy base. Full fat varieties yield the richest texture
- Fresh lemon juice adds brightness. Always use freshly squeezed for clean flavor
- Olive oil brings richness. Extra virgin provides the best flavor
- Fresh mint introduces cooling notes. Look for bright green leaves without any wilting
- Garlic adds pungent depth. A microplane creates the finest mince
Step-by-Step Instructions
- Prepare the meat mixture
- Combine ground meat with minced garlic, grated onion, chopped herbs, and all the spices in a large bowl. The grated onion is crucial as it adds moisture while disappearing into the mixture. Mix everything gently with your hands until just combined. Overmixing will result in tough meatballs.
- Shape the meatballs
- With slightly damp hands, portion the mixture into golf ball sized portions. Roll each portion between your palms with gentle pressure until smooth and round. Place them on a plate and slightly flatten each meatball to ensure even cooking.
- Preheat your grill
- Heat your grill or grill pan to medium high heat. Brush the surface lightly with olive oil to prevent sticking. The grill should be hot enough that the meatballs sizzle immediately when placed on the surface.
- Grill to perfection
- Place the meatballs on the hot grill, leaving space between each one. Cook for 3 to 4 minutes until the bottom develops nice grill marks, then gently flip. Cook another 3 to 4 minutes until the internal temperature reaches 160°F for beef or 165°F for lamb.
- Create the yogurt sauce
- While the meatballs cook, whisk together Greek yogurt, lemon juice, olive oil, chopped mint, and minced garlic in a bowl. Season with salt and pepper to taste. The sauce should be smooth and easily drizzlable but not watery.
- Rest and serve
- Allow the grilled meatballs to rest for 5 minutes before serving. This crucial step allows juices to redistribute throughout the meat. Serve hot meatballs with the chilled yogurt sauce alongside or drizzled over the top.

The cinnamon in these meatballs might seem unusual if you're used to Western cooking, but it's my favorite ingredient in this recipe. The first time my grandmother added it to meatballs, I thought she'd made a mistake until I tasted how the warmth perfectly balanced the savory meat and tangy yogurt sauce.
Storage Solutions
These meatballs maintain their texture and flavor beautifully when stored properly. After cooling completely, place them in an airtight container and refrigerate for up to three days. The yogurt sauce should be stored separately in its own container. When reheating, add a tablespoon of water to a covered skillet and warm the meatballs gently over medium heat until they reach 165°F internally. Microwaving works in a pinch but can make them slightly tougher.
Make It Ahead
The beauty of this recipe lies in its make ahead potential. You can prepare the meat mixture and form the meatballs up to 24 hours before cooking. Simply cover them tightly and refrigerate. The resting period actually allows the flavors to develop more deeply. The yogurt sauce can also be made a day ahead, though you may need to stir it well before serving as some separation might occur naturally.
Serving Suggestions
Transform these meatballs into a complete meal with thoughtful accompaniments. Serve them over a bed of fluffy couscous seasoned with lemon zest and chopped apricots. For a lighter option, arrange them atop a salad of cucumber, tomato, and red onion dressed simply with olive oil and lemon juice. They also work beautifully stuffed into warm pita bread with crisp lettuce and a drizzle of extra yogurt sauce.
Cultural Context
These meatballs draw inspiration from kefta, a traditional Moroccan preparation of seasoned ground meat. In Morocco, similar spiced meatballs would typically be threaded onto skewers and grilled over charcoal, imparting a distinctive smoky flavor. The yogurt sauce represents a fusion element, as dairy based sauces are more common in Eastern Mediterranean cooking than in traditional Moroccan cuisine, which might instead feature harissa for heat or preserved lemon for brightness.

Recipe FAQs
- → Can I bake these meatballs instead of grilling them?
Yes! You can bake the Moroccan meatballs in a 400°F (200°C) oven for 15-18 minutes, turning them halfway through cooking. This method works well when grilling isn't an option or during colder months. You'll still get delicious results, though you might miss some of the charred flavor that grilling provides.
- → What's the best meat to use for these Moroccan meatballs?
A mixture of beef and lamb creates the most authentic and flavorful Moroccan meatballs. The lamb adds richness while the beef provides structure. However, you can use 100% beef, lamb, or even substitute with ground turkey or chicken for a lighter version. Just note that leaner meats may require additional olive oil to prevent dryness.
- → Can I prepare these meatballs ahead of time?
Absolutely! You can form the meatballs and store them uncooked in the refrigerator for up to 24 hours before grilling. This makes them perfect for entertaining. You can also cook the meatballs completely, refrigerate for up to 3 days, or freeze for up to 2 months. Just prepare the yogurt sauce fresh before serving.
- → What can I substitute for Greek yogurt in the sauce?
If Greek yogurt isn't available, you can use regular plain yogurt, though you might want to strain it first for a thicker consistency. Labneh (strained yogurt cheese) works excellently too. For dairy-free options, unsweetened coconut yogurt or cashew cream can provide a similar creamy texture, though with a slightly different flavor profile.
- → What sides pair well with Moroccan meatballs?
These meatballs pair beautifully with couscous, tabbouleh, or rice pilaf for an authentic Middle Eastern meal. Warm flatbreads like pita or naan are perfect for scooping up the meatballs and sauce. For a lighter option, serve with a simple cucumber and tomato salad dressed with lemon and olive oil, or roasted vegetables seasoned with complementary spices.
- → Can I adjust the spice level of these meatballs?
Absolutely! The cayenne pepper is optional and can be adjusted according to your heat preference. For a milder version, omit it entirely. For extra heat, increase the cayenne or add a pinch of red pepper flakes. The warm spices (cumin, coriander, cinnamon, allspice) provide flavor rather than heat, so those can remain as specified in the recipe.