Moroccan Meatball Stew with Tomato and Warm Spices

Updated November 4, 2026

Total time
1 hr 5 min
prep 25 min · cook 40 min
Serves
4
portions as written
Safe temperature (USDA)
160°F / 71°C
check the thickest piece

Jump to recipe

Moroccan Meatball Stew with Tomato and Warm Spices

Moroccan meatball stew pairs tender, cumin-and-paprika-spiced kefta with a gently simmered tomato sauce, often served with bread or couscous to catch every spoonful. This home-style version adds chickpeas for a heartier bowl, and its warm spices, fresh herbs, and straightforward stovetop method make it satisfying without requiring hard-to-find ingredients.

Ingredients

  • 1 lb (450 g) ground beef or ground lamb, preferably 85–90% lean
  • 1 small yellow onion, finely grated or minced, about 1 cup (150 g), divided between the meatballs and sauce
  • 3 tbsp (12 g) finely chopped fresh parsley, divided
  • 2 tbsp (8 g) finely chopped fresh cilantro, divided, plus more to serve if desired
  • 2 garlic cloves, finely grated or minced, about 2 tsp (6 g)
  • 1 tsp (2 g) ground cumin
  • 1 tsp (2 g) sweet paprika
  • ½ tsp (1 g) ground coriander
  • ¼ tsp (0.5 g) ground cinnamon
  • 1 tsp (6 g) kosher salt, plus more to taste
  • ½ tsp (1 g) freshly ground black pepper
  • 2 tbsp (30 ml) olive oil
  • 1 can (14.5 oz / 411 g) diced tomatoes, with their juices
  • ½ cup (120 ml) water or low-sodium broth, plus a little more if needed
  • 1 can (15 oz / 425 g) chickpeas, drained and rinsed, about 1½ cups (250 g)
  • 1 tbsp (15 ml) fresh lemon juice, or to taste

Instructions

  1. Mix and shape the meatballs. In a medium bowl, combine the ground beef or lamb with half of the onion, 2 tablespoons (8 g) of the parsley, 1 tablespoon (4 g) of the cilantro, half the garlic, the cumin, paprika, coriander, cinnamon, salt, and pepper. Mix gently with your fingertips just until evenly combined; compact mixing can make the meatballs dense. With damp hands, roll the mixture into about 20 small balls, each roughly 1¼ inches (3 cm) wide. Set them on a plate while you make the sauce. This prep takes about 25 minutes, including chopping and shaping.
  2. Soften the onion. Heat the olive oil in a wide, heavy-bottomed pot or deep skillet over medium heat. Add the remaining onion and cook for about 8 minutes, stirring now and then, until soft and translucent but not deeply browned. If the onion starts to stick, lower the heat and add a teaspoon of water rather than letting it scorch.
  3. Build the tomato sauce. Stir in the remaining garlic and cook for 30 seconds, just until fragrant. Add the diced tomatoes and their juices, the water or broth, and the drained chickpeas. Bring the mixture to a gentle simmer, then cook uncovered for 10 minutes, stirring occasionally. The sauce should look slightly thickened but still loose enough to simmer the meatballs; add a splash of water if it becomes pasty.
  4. Simmer the meatballs in the sauce. Nestle the meatballs into the sauce in a single layer as much as possible. Spoon a little sauce over the tops, cover the pot partially, and simmer gently for 22 minutes, turning the meatballs once about halfway through. Keep the liquid at a steady, quiet simmer rather than a hard boil, which can make the meatballs break apart. Check the center of a larger meatball with a food thermometer: ground beef or lamb must reach the USDA FSIS safe minimum internal temperature of 160°F (71°C). If needed, continue simmering and check again.
  5. Finish and season. Stir in the remaining parsley and cilantro, then add the lemon juice. Taste the sauce and adjust the salt, pepper, or lemon to suit. If it is thinner than you like, simmer uncovered for a few minutes; if it is too thick, loosen it with a little water or broth. Let the stew sit for 2 minutes before serving so the sauce settles around the meatballs.

Tips

  • Keep the meatballs tender. Combine the mixture only until the seasonings are distributed, and avoid squeezing the balls tightly. A little stickiness is normal; damp hands make shaping easier. If the mixture feels unusually loose, chill it for 10 minutes while the onion cooks, rather than adding lots of breadcrumbs that can change the texture.
  • Choose the meat to suit your taste. Beef gives a familiar, savory flavor, while lamb is richer and especially complementary to cumin and coriander. A half-and-half mixture works well too. Very lean meat can turn dry more easily, so avoid overcooking and check the internal temperature with a thermometer.
  • Use gentle heat and a wide pan. A broad pot gives the meatballs room to sit in the sauce and helps it reduce evenly. If your pan is crowded, arrange the meatballs in two layers only if needed and turn them carefully. A vigorous boil can break them up before they firm.
  • Make the spice profile your own. Fresh cilantro and parsley bring a bright finish, but parsley alone is fine if cilantro is not to your taste. Ground coriander is widely sold in supermarkets; if you do not have it, leave it out rather than substituting a large amount of a stronger spice. The stew will still taste warmly spiced from the cumin and paprika.

Serving Suggestions

Serve the stew hot in shallow bowls, making sure each portion gets tomato sauce, chickpeas, and several meatballs. Moroccan-style bread, crusty bread, or warm pita is useful for scooping up the sauce. For a more substantial plate, spoon the stew over couscous, rice, or a bed of simply cooked bulgur. Couscous is especially convenient: prepare it separately according to its package directions, then fluff it with a fork just before serving so it does not become soggy under the sauce.

A small salad or vegetable side balances the rich, warmly seasoned stew. Try chopped cucumber and tomato with lemon, a green salad with a light vinaigrette, or roasted carrots and zucchini. Put extra chopped herbs and lemon wedges on the table so diners can brighten their bowls to taste. If you like a little heat, offer harissa or another chile condiment separately; that lets everyone control the spice without changing the whole pot.

The stew is filling enough to serve as the main course, so a simple side is usually all it needs. If serving it for a casual gathering, keep the pot covered over very low heat only briefly while people sit down, and stir carefully so the meatballs stay intact. For a larger meal, offer couscous and a crisp salad alongside rather than adding several heavy sides.

Variations

Moroccan kefta and tomato dishes have regional, household, and seasonal variations; there is no single version that every cook follows. This recipe uses a practical tomato-and-chickpea approach. For a closer, simpler meatball-and-tomato stew, omit the chickpeas and use ½ cup (120 ml) water or broth as written. The sauce will be less substantial, so serve it with bread or a grain. You can also replace the chickpeas with 1 cup (150 g) sliced carrots, adding them with the tomatoes so they have time to soften.

For a different meatball texture, replace up to half the beef or lamb with ground turkey, but note that poultry meatballs must reach 165°F (74°C), the USDA FSIS safe minimum internal temperature for poultry. Ground turkey is leaner and milder, so take care not to simmer it longer than necessary and season the sauce to taste. If using a meat blend, follow the safe temperature for the poultry in the mixture and check a meatball in its center.

To make the stew hotter, add a pinch of cayenne or a small spoonful of harissa to the sauce. For a sweeter, gently rounded flavor, stir in a pinch of ground cinnamon or a few chopped dried apricots; the fruit adds sweetness and is not part of the basic version. If fresh tomatoes are abundant, use about 1½ lb (680 g) ripe tomatoes, chopped, instead of canned, and simmer until they collapse into a sauce. Fresh tomatoes vary in juiciness, so add water only as needed.

For a more herb-forward finish, increase the parsley or cilantro slightly and add it just before serving, not at the beginning of the simmer. A handful of baby spinach can be stirred in during the final 2 minutes until wilted. These additions change the bowl but do not require a different method; keep the meatballs simmering gently and verify their safe temperature before serving.

Storage and Reheating

Cool leftovers promptly and refrigerate them within 2 hours of cooking, in a covered, shallow container. The stew keeps for 3–4 days in the refrigerator. Store couscous, bread, or other accompaniments separately so they do not soak up the sauce. For longer storage, freeze the cooled stew in meal-sized airtight containers for up to 3 months for best quality. Thaw it in the refrigerator overnight; the chickpeas and meatballs may soften slightly, but the flavor remains suitable for a reheated meal.

Reheat a portion in a covered saucepan over medium-low heat, stirring carefully and adding a tablespoon or two of water if the sauce has thickened. Heat until steaming throughout and bring leftovers to 165°F (74°C), checking the center with a food thermometer. In a microwave, use a covered microwave-safe dish, stir gently partway through, and check more than one spot for even heating. Reheat only the portion you plan to eat, and avoid repeatedly cooling and reheating the full batch.

Frequently Asked Questions

Can I make Moroccan meatball stew ahead?
Yes. You can cook it a day ahead, cool it promptly, and refrigerate it covered. The flavors mingle as it rests, and the sauce may thicken; add a little water or broth when reheating and bring the stew to 165°F (74°C). For the freshest herb flavor, save a little parsley or cilantro to add just before serving.

Do I need to brown the meatballs first?
No. In this recipe they cook directly in the simmering tomato sauce, which keeps the method simple and lets the sauce flavor the meat. Browning can add a deeper, roasted note, but it is optional and creates another step. If you do brown them, work in batches so the pan is not crowded, then transfer them to the sauce and cook through to the required internal temperature.

What can I use instead of chickpeas?
You can leave them out, or use drained white beans for a similarly soft, hearty addition. Add white beans with the tomatoes so they warm through in the sauce. If you want more vegetables instead, use diced carrots or zucchini; carrots need the full simmer, while zucchini is best added for the final 8–10 minutes so it does not become overly soft.

How do I stop the meatballs from falling apart?
Mix the meat gently, shape the balls evenly, and let them cook at a gentle simmer rather than a rolling boil. Avoid stirring vigorously once they enter the sauce; spoon sauce over them or turn them carefully with a wide spoon. Small meatballs also cook more evenly than oversized ones. If the mixture is very loose, a short chill before shaping can help.

Is this stew very spicy?
No. Cumin, paprika, coriander, and a little cinnamon provide warmth and fragrance rather than chile heat. Paprika is typically mild in this recipe. For a hotter stew, add cayenne in a small pinch or serve harissa on the side, tasting as you go so the heat does not overwhelm the tomato and herbs.

Can I use canned tomatoes other than diced?
Yes. Crushed tomatoes make a smoother, thicker sauce, while whole peeled tomatoes can be crushed by hand or with a spoon in the pot. Keep the same approximate quantity, 14.5 oz (411 g), and adjust the water if needed. Different canned tomatoes vary in salt and thickness, so taste the finished sauce before adding extra salt.

Related

More recipes to cook

Safety notes: safe minimum internal temperatures from USDA FSIS; raw and undercooked fish guidance from the U.S. FDA. Food safety notes

Spotted an error? Tell us and we will correct it (corrections policy).