This Post May Contain Affiliate Links. Please Read Ourย Disclosure Policy.
Hearty but never heavy, these Moroccan meatballs are simply incredible. Tender meatballs made from a blend of ground beef and rich spices, braised in a mouthwatering tomato-based sauce and served over a bed of warm, fluffy couscous. This is one of my husband’s very favorite recipes going back more than a decade!

Before You Get Started
- The type of ground beef you use will make a difference! Too lean, you risk the meat drying out during cooking. Not lean enough, your meatballs can come out greasy. I like to use 85/15 or 90/10 ratios for the best results.
- If you don’t want to cook with alcohol, feel free to replace the dry white wine with a little chicken stock or chicken broth.
How to Make This Recipe
See recipe card below for full list of measurements, ingredients, and instructions.
Make the meatballs
Mix all the meatball ingredients together until just combined – be careful that you don’t overmix them! I like to start out with a spatula or a spoon, then switch to using my hands once I add the ground beef. Once everything’s fully combined, use a cookie scoop with a release handle to scoop the mixture into individual portions. Roll each scoop between the palms of your hands just until it’s formed into a ball.
Cook the Meatballs
Bake the meatballs at 350ยฐ Fahrenheit for 15-20 minutes, or quickly pan-fry the meatballs in a little oil until they’re browned on all sides. Set them aside – we’ll finish cooking them in the sauce later.
Make the Sauce
Start by sautรฉeing onions and garlic in hot oil until the aromatics are just softened. Stir in lemon zest and kalamata olives, let those cook for 60 seconds, then deglaze the pan with a little dry white wine. Add the rest of the ingredients, stir, and simmer the mixture for 7 minutes. Season with salt and pepper to taste, then add the meatballs to the sauce. Let everything simmer together 10 minutes or until the meatballs are cooked through.
Make the Couscous
Bring chicken stock, lemon juice, and a little oil to boil in a small saucepan, then add chopped dried dates and 1 cup of couscous. Cover the saucepan with a lid, remove it from the heat, and let the couscous cook 5 minutes. After 5 minutes, fluff the couscous with a fork and season it to taste!
Serve and Enjoy
Layer a bed of couscous in the bottom of a serving bowl, then top the couscous with meatballs and plenty of that delicious sauce. Garnish with chopped fresh parsley (if you want!) and serve warm.
What I Love About This Recipe
- Moroccan food is one of my all-time favorite cuisines. The heady spices. The herbaceous freshness. A rich sweetness of dates dancing around infusions of bright citrus. Warm and spiced, yet light and vibrant. Satisfying and satiating without weighing you down. These incredible meatballs (also known as kefta) are full of all that and more!
- Moroccan meatballs served over a bed of couscous are elegant yet down-to-earth, fit for company but perfect on an ordinary weeknight. Oh, and they’re perfectly cooked. Youโve never had such tender meatballs, I promise you.
Recipe Variations
- Try a New Protein: I like to make Moroccan meatballs with ground beef, but kefta can actually be made with beef or with lamb! You could also use ground chicken or ground turkey. I’ve even made them with seitan for a vegan twist!
- Deeper Flavors: If you’ve got time, make the meatball mixture 1-2 hours in advance and let it chill (covered!) in the fridge. All those ingredients will mingle and meld during that time, giving you richer, more flavorful meatballs. They’ll hold together better and be juicier, too!
Making changes to a recipe can result in recipe failure. Any substitutions or variations listed are simple changes that I believe will work in this recipe, but results are not guaranteed.
Moroccan Meatballs with Couscous
Equipment
- Oven if baking meatballs
- large baking sheet if baking meatballs
- Aluminum Foil if baking meatballs
- medium mixing bowl
- Silicone spatula
- Cookie scoop with release handle
- Large plate if frying meatballs
- Large skillet if frying meatballs
- stovetop
- Tongs if frying meatballs
- Large saucepan
- Large wooden spoon
- Small saucepan with lid
- Fork
- Serving bowls
Ingredients
For the Meatballs
- 1 large egg
- 2 tablespoons tomato paste
- ยผ cup finely chopped fresh cilantro leaves
- 1 teaspoon ground ginger
- 1 teaspoon ground cumin
- 1 pinch ground cinnamon
- 1 pound lean ground beef or lamb
- ยฝ cup breadcrumbs
- salt to taste
- freshly cracked black pepper to taste
- 3 tablespoons vegetable oil plus more as needed, if frying meatballs
For the Sauce
- 2 tablespoons olive oil
- ยฝ cup diced white onion approximately 1 small onion
- 2 tablespoons minced fresh garlic approximately 3 large cloves
- 1 tablespoon fresh lemon zest zest from approximately 1 medium lemon
- ยฝ cup pitted kalamata olives chopped
- ยฝ cup dry white wine or chicken stock, or chicken broth
- 1 tablespoon fresh lemon juice
- ยผ cup chicken stock or chicken broth, low sodium if preferred
- 1 14-ounce can crushed tomatoes
- 2 packed teaspoons light brown sugar
- 1 large pinch crushed red pepper flakes
- 1 pinch ground cinnamon
- salt to taste
- freshly cracked black pepper to taste
For the Couscous
- 2 cups chicken stock or chicken broth, low sodium if preferred
- 1 tablespoon olive oil
- 2 tablespoons fresh lemon juice juice from approximately 1 medium lemon
- โ cup finely chopped dried dates
- 1 cup instant couscous
- salt to taste
- freshly cracked black pepper to taste
Serving Suggestions (All Optional)
- chopped fresh parsley leaves
Instructions
- If baking meatballs, preheat oven to 350ยฐ Fahrenheit. Line large baking sheet with aluminum foil and set aside. Disregard if frying meatballs.
To Make the Meatballs
- Add 1 large egg and 2 tablespoons tomato paste to medium mixing bowl. Mix ingredients together until fully combined into smooth mixture.
- Add ยผ cup finely chopped fresh cilantro leaves, 1 teaspoon ground ginger, 1 teaspoon ground cumin, and 1 pinch ground cinnamon to bowl. Stir until ingredients are fully incorporated.
- Add 1 pound lean ground beef ยฝ cup breadcrumbs, salt, and freshly cracked black pepper to bowl. Mix ingredients together with hands or spatula until just incorporated. Be careful not to overmix.
- Use cookie scoop to portion meatball mixture into individual portions, rolling each scoop between palms of hands quickly to smooth. Place meatball on prepared baking sheet or on large plate. Repeat until entire meatball mixture has been formed into approximately 32 individual meatballs, each approximately 1-inch in diameter.
To Bake the Meatballs
- Place prepared baking sheet in preheated oven. Bake meatballs 15 to 20 minutes or until meatballs are just lightly browned.
- Once lightly browned, remove baking sheet from oven and set aside.
To Fry the Meatballs
- Place large skillet on stovetop over medium-high heat. Add 3 tablespoons vegetable oil to skillet and heat pan until oil is hot and shimmery.
- When oil is hot, add meatballs to skillet, working in batches as needed to avoid overcrowding pan. Fry meatballs, flipping meatballs occasionally, until golden brown on all sides.
- Transfer fried meatballs to large bowl and set aside. Repeat until all meatballs have been fried, adding oil to pan as needed.
To Make the Sauce
- Place large saucepan on stovetop over medium heat. Add 2 tablespoons olive oil to saucepan and continue heating pan until oil is hot and shimmery.
- When oil is hot, add ยฝ cup diced white onion and 2 tablespoons minced fresh garlic to saucepan. Stir to incorporate. Sautรฉ ingredients approximately 3 minutes or until softened but not browned.
- Once onion and garlic are softened, add 1 tablespoon fresh lemon zest and ยฝ cup pitted kalamata olives to saucepan. Stir to incorporate. Sautรฉ ingredients 1 minute.
- Add ยฝ cup dry white wine to saucepan. Stir to incorporate, scraping bottom of pan to loosen any onions or garlic that may have stuck to pan. Reduce heat under pan to low and simmer mixture 1 to 2 minutes or until wine has reduced slightly.
- When wine has reduced, add 1 tablespoon fresh lemon juice, ยผ cup chicken stock, 1 14-ounce can crushed tomatoes, 2 packed teaspoons light brown sugar, 1 large pinch crushed red pepper flakes, and 1 pinch ground cinnamon. Stir to incorporate.
- Simmer mixture over low heat 7 minutes, then taste sauce and add salt and freshly cracked black pepper as desired. Stir to incorporate added ingredients.
- When satisfied with flavor of sauce, add cooked meatballs to saucepan. Gently coat meatballs in sauce then let mixture simmer 10 minutes or until meatballs are cooked through.
To Make the Couscous
- While meatballs simmer, place small saucepan on stovetop over medium-high heat. Add 2 cups chicken stock, 1 tablespoon olive oil, and 2 tablespoons fresh lemon juice to saucepan and stir to incorporate. Bring mixture to boil.
- When mixture begins to boil, add โ cup finely chopped dried dates and 1 cup instant couscous. Cover saucepan with lid and remove saucepan from heat. Let couscous boil in covered saucepan 5 minutes.
- After 5 minutes, uncover saucepan and fluff couscous with tines of fork. Taste couscous and season with salt and freshly cracked black pepper to taste.
To Serve
- Place preferred amounts of couscous in serving bowls. Top couscous with meatballs and plenty of sauce.
- Garnish dish with chopped fresh parsley leaves if desired and serve immediately.
- Yield: As-written, the recipe will make roughly 32 1-inch-diameter meatballs. Larger and smaller meatballs will change the total number of meatballs made.
- Sauce Consistency: If sauce is too thick, add more chicken stock in small increments, stirring until fully incorporated, until desired consistency is achieved.
Approximate Information for One Serving
Nutrition Disclaimers
Number of total servings shown is approximate. Actual number of servings will depend on your preferred portion sizes.
Nutritional values shown are general guidelines and reflect information for 1 serving using the ingredients listed, not including any optional ingredients. Actual macros may vary slightly depending on specific brands and types of ingredients used.
To determine the weight of one serving, prepare the recipe as instructed. Weigh the finished recipe, then divide the weight of the finished recipe (not including the weight of the container the food is in) by the desired number of servings. Result will be the weight of one serving.
Did You Make This Recipe?
Tag @40aprons on Instagram and be sure to leave a review on the blog post!
Never Miss A Meal!
New Recipes Straight To Your Inbox
A curated selection of our most recent recipes, delivered straight to your inbox once a week.
Hi Cheryl! Thank you for this delicious recipe! I made it the other night and my husband and I both thought it was SO delectable ๐ I also liked it so much, I shared it in my latest link post on my blog. If you like you can check out the post here: http://thecommoncreative.blogspot.ca/2014/03/curated-by-jenni-vol-2.html
Cheers!
I’m so glad you liked it as much as we did!! Checking out the link now ๐
Ahh love the post! And I am basically dying over those temporary tats. Adorable
These look so great! I have been dying to come up with a new way to use ground beef, and I am a huge fan of Moroccan spices. I’m seriously craving the cinnamon now. ๐
Thanks girl! I really think you’d like it, AND they make great leftovers. I know the last thing you want to do right now is make elaborate meals from scratch every single night!