This Moroccan-inspired soup brings together tender spiced mini beef meatballs, diced carrots, celery, and zucchini in a richly seasoned tomato and broth base.
Warm cumin, paprika, turmeric, and ginger infuse every spoonful with North African flair, while instant couscous adds satisfying heartiness.
Ready in under an hour, it makes a complete and comforting meal for four, finished with fresh cilantro and a squeeze of lemon.
A damp Tuesday evening, rain streaking the kitchen windows, and I had nothing planned for dinner except a vague craving for something warm and complicated enough to distract me from the weather. I rummaged through the spice drawer and found cumin, cinnamon, and turmeric huddled together like old friends waiting to be useful. Forty minutes later, the whole house smelled like a Marrakech market, and I was hunched over the stove, fishing out a tiny meatball to test if it was done, burning my fingers in the process. Entirely worth it.
I made a double batch of this soup for a neighbors potluck last winter, fully expecting leftovers for the week. The pot came back scraped clean, and three people texted me for the recipe before noon the next day. One of them had never cooked with cinnamon in a savory dish before and called me mid grocery run, slightly panicked, asking if I was sure that part was correct.
Ingredients
- 300 g ground beef or lamb: Lamb gives a deeper, gamier flavor but beef is easier to find and still wonderful.
- 1 small onion, finely grated: Grating rather than chopping keeps the meatballs tender and helps everything bind without needing eggs.
- 1 garlic clove, minced: One is enough for the meatballs since the broth carries plenty more garlic later.
- 1 tbsp chopped fresh parsley and 1 tbsp chopped fresh cilantro: Use both if you can, but either herb alone works fine in a pinch.
- 1/2 tsp ground cumin, 1/2 tsp ground coriander, 1/4 tsp ground cinnamon: The cinnamon is what makes people pause, taste again, and ask what the secret is.
- 1/2 tsp salt and 1/4 tsp black pepper: Straightforward seasoning for the meat mixture.
- 1 tbsp olive oil: Just enough to get the vegetables sweating without overpowering the spices.
- 1 small onion, diced, 2 garlic cloves, minced: The soup base starts here, building sweetness and depth.
- 1 large carrot, 1 celery stalk, 1 small zucchini, all diced: A colorful trio that adds texture and makes the soup feel like a full meal.
- 1 tsp ground cumin, 1 tsp ground paprika, 1/4 tsp turmeric, 1/2 tsp ground ginger, 1/4 tsp cayenne pepper: Toast these briefly in the pot and your kitchen will smell incredible.
- 1.2 liters chicken or vegetable broth: Homemade is lovely but a good quality boxed broth works perfectly here.
- 400 g canned diced tomatoes: Their juices add acidity and body to the broth.
- 120 g instant couscous: It steams in the hot broth off the heat, so no separate pot needed.
- Fresh cilantro or parsley and lemon wedges: A squeeze of lemon at the end brightens every single bowl.
Instructions
- Roll the tiny meatballs:
- Combine all the meatball ingredients in a bowl and mix with your hands until everything is evenly distributed. Wet your palms to keep the mixture from sticking, then roll into small balls about 2 cm across, setting them on a plate as you go.
- Build the soup base:
- Heat the olive oil in a large pot over medium heat and cook the diced onion for about 3 minutes until it softens and turns translucent. Add the garlic, carrot, celery, and zucchini, stirring occasionally for another 5 minutes until everything begins to soften and smell sweet.
- Bloom the spices:
- Stir in the cumin, paprika, turmeric, ginger, and cayenne if you are using it. Let them toast in the oil for about a minute, stirring constantly so nothing burns, until the fragrance hits you.
- Add the liquids:
- Pour in the broth and the canned diced tomatoes with all their juices, then bring everything to a rolling boil.
- Simmer with the meatballs:
- Gently lower the meatballs into the bubbling broth one by one, then reduce the heat to low. Cover the pot and let it simmer for 20 minutes until the meatballs are cooked through and the vegetables are completely tender.
- Steam the couscous:
- Stir the couscous into the soup, take the pot off the heat entirely, and clap the lid back on. Let it sit undisturbed for 5 to 7 minutes until the couscous has absorbed the broth and turned fluffy.
- Finish and serve:
- Taste the broth and add salt and pepper as needed, then ladle into deep bowls. Scatter fresh cilantro or parsley over the top and serve with a fat wedge of lemon on the side.
There is something about a bowl of this soup that makes people slow down. I noticed it the first time I served it to friends, how the conversation dipped to a comfortable murmur while everyone focused on spooning up those tiny meatballs and chasing them with broth.
Choosing Between Beef and Lamb
Ground lamb brings a richness that works beautifully with the warm spices, giving the broth an almost velvety quality. Ground beef is leaner and more neutral, which lets the spice blend shine a bit more clearly. I have tried mixing the two half and half, and honestly that might be the sweet spot if you want depth without too much gaminess.
Making It Your Own
A handful of drained chickpeas tossed in with the broth adds a lovely creaminess and bumps up the protein. If you need to keep it gluten free, skip the couscous and stir in cooked quinoa or rice at the very end instead. A friend of mine adds a big spoonful of harissa paste to her bowl and swears it changes the entire dish.
What to Serve Alongside
This soup is hearty enough to stand alone, but a chunk of crusty bread for dipping never hurts. A glass of Moroccan rosé or a pot of sweet mint tea turns a weeknight dinner into something that feels like an occasion.
- Warm the bread, because cold bread against hot soup is a sadness.
- If you go the mint tea route, brew it strong and sweeten it generously.
- Always put extra lemon wedges on the table, because someone will want more.
This is the kind of soup that earns a permanent spot in your winter rotation, the one you reach for when the forecast looks grim and you need the kitchen to smell like somewhere far away. Keep the lemon wedges close and the bread closer.
Recipe FAQs
- → Can I use lamb instead of beef for the meatballs?
-
Yes, lamb works beautifully and adds an authentic Moroccan depth of flavor. You can also use a 50/50 mix of beef and lamb for a balanced taste.
- → How small should the meatballs be?
-
Aim for about 2 cm in diameter, roughly the size of a large marble. Keeping them small ensures they cook evenly in the broth and are easy to eat with a spoon.
- → Can I make this soup gluten-free?
-
Absolutely. Simply swap the instant couscous for an equal amount of cooked quinoa or rice. Add it at the same stage and adjust the resting time accordingly.
- → What can I add for extra protein and texture?
-
Chickpeas are a natural addition that pairs perfectly with the Moroccan spices. Drain and rinse a can, then add them along with the broth for a heartier bowl.
- → How should I store and reheat leftovers?
-
Store in an airtight container in the refrigerator for up to 3 days. Reheat gently on the stovetop or in the microwave. The couscous will absorb more broth, so add a splash of water or stock when reheating.
- → Is this soup very spicy?
-
The soup is warmly spiced rather than hot. The cayenne pepper is optional, so you can control the heat level. Without it, the dish is family-friendly and richly aromatic.