Spicy Moroccan Beef Meatballs with Yellow Rice

Ever make meatballs and immediately know plain rice isn’t going to cut it?

These Moroccan-style beef meatballs have enough spice and tomatoey sauce going on that yellow rice underneath them just makes sense.

Spicy Moroccan Beef Meatballs with Yellow Rice1 Spicy Moroccan Beef Meatballs with Yellow Rice

 

What sold me on this dinner was the smell before anything even hit the plate.

The beef is packed with cumin, paprika, garlic, chilli, and herbs, so the meatballs already have plenty going on before they ever meet the sauce.

Once they’re browned and sitting in that spiced tomato base, everything starts tasting a bit deeper and richer.

The yellow rice is there to soak it all up, and honestly, that’s most of its job.

A spoonful of sauce, a bit of meatball, some rice, maybe a little fresh coriander over the top — done.

No complicated garnish situation, no unnecessary extras.

Just a really good plate of food with a bit of heat behind it.

 

Why You’ll Want This ASAP

This is one of those dinners that brings a lot to the table.

The beef meatballs are soft and flavour-packed.

The tomato sauce is thick, rich, and properly spiced, with enough heat to keep things interesting.

The roasted peppers melt into the sauce and add sweetness, while the yellow rice keeps the whole plate balanced.

It looks colourful.

It tastes big.

And it feels like the sort of dinner you’d be very happy to see waiting for you after a long day.

Screenshot 2026 10 25 at 19.17.47 Spicy Moroccan Beef Meatballs with Yellow Rice

What You’ll Need

For the meatballs

  • 500g ground beef
  • 1 small onion, very finely grated or minced
  • 2 garlic cloves, minced
  • 45g breadcrumbs
  • 1 egg
  • 2 tablespoons chopped fresh cilantro
  • 1 teaspoon ground cumin
  • 1 teaspoon paprika
  • 1/2 teaspoon ground coriander
  • 1/4 teaspoon cinnamon
  • 1/2 teaspoon chili flakes
  • 1 teaspoon salt
  • 1/2 teaspoon black pepper
  • 1 tablespoon olive oil, for browning

For the Moroccan tomato sauce

  • 1 1/2 tablespoons olive oil
  • 1 medium onion, thinly sliced
  • 1 red bell pepper, sliced
  • 1 yellow or orange bell pepper, sliced
  • 3 garlic cloves, minced
  • 1 tablespoon tomato paste
  • 1 teaspoon ground cumin
  • 1 teaspoon paprika
  • 1/2 teaspoon ground coriander
  • 1/4 teaspoon cinnamon
  • 1/2 teaspoon chili flakes, or more to taste
  • 1 x 400g can crushed tomatoes
  • 240ml beef stock or water
  • 1 teaspoon honey or brown sugar
  • 1 teaspoon salt, or to taste
  • 1/2 teaspoon black pepper

For the yellow rice

  • 250g basmati rice
  • 1 tablespoon butter or olive oil
  • 1 small garlic clove, minced
  • 1/2 teaspoon turmeric
  • 1/4 teaspoon ground cumin
  • 475ml chicken stock or water
  • 1/2 teaspoon salt

For finishing

  • chopped fresh cilantro
  • 1 red chili, thinly sliced
  • lemon wedges

A Quick Look at the Flavour

These meatballs lean warm and spiced rather than overly hot.

You’ve got cumin, paprika, coriander, cinnamon, garlic, and chili working together to give the sauce that deep Moroccan-style feel.

The peppers soften right down into the tomato base, which makes the sauce sweeter and rounder.

Then the fluffy yellow rice keeps everything from feeling too intense and soaks up the sauce beautifully.

Let’s Make It

1. Make the meatball mixture

In a large bowl, combine the ground beef, grated onion, garlic, breadcrumbs, egg, chopped cilantro, cumin, paprika, coriander, cinnamon, chili flakes, salt, and black pepper.

Mix just until everything is evenly combined.

Do not overwork it or the meatballs can turn dense.

Shape the mixture into about 12 medium meatballs.

Set them aside on a plate.

2. Brown the meatballs

Heat 1 tablespoon olive oil in a large deep skillet or sauté pan over medium heat.

Add the meatballs and brown them on all sides for about 6 to 8 minutes.

They do not need to be fully cooked through at this stage.

You just want good colour on the outside.

Transfer them to a plate.

3. Start the sauce

In the same pan, add 1 1/2 tablespoons olive oil if needed.

Add the sliced onion and both sliced peppers.

Cook over medium heat for about 8 to 10 minutes, stirring now and then, until the vegetables are softened and the peppers are starting to catch a little colour around the edges.

Add the garlic and cook for 30 seconds.

Stir in the tomato paste, cumin, paprika, coriander, cinnamon, and chili flakes.

Cook for another minute so everything smells rich and toasty.

4. Build the sauce

Pour in the crushed tomatoes and beef stock.

Add the honey, salt, and black pepper.

Stir well and bring the sauce to a gentle simmer.

Return the meatballs to the pan, nestling them into the sauce.

Partially cover and simmer for 20 to 25 minutes, turning the meatballs once or twice, until they are cooked through and the sauce has thickened nicely.

If the sauce gets too thick too early, add a small splash of water.

You want it rich and spoonable, not dry.

5. Cook the yellow rice

While the meatballs simmer, rinse the basmati rice until the water runs mostly clear.

Heat the butter or olive oil in a medium saucepan over medium heat.

Add the garlic, turmeric, and cumin, and cook for about 20 seconds.

Add the rice and stir for a minute so it gets coated in the spiced butter.

Pour in the stock or water and add the salt.

Bring to a boil, then reduce the heat to low, cover, and cook for 12 minutes.

Turn off the heat and let it sit, covered, for 10 more minutes.

Fluff with a fork before serving.

6. Finish and serve

Spoon a generous mound of yellow rice into each bowl or plate.

Add the beef meatballs and plenty of that thick spicy tomato sauce alongside.

Make sure some of the softened roasted peppers go on too.

Scatter chopped cilantro over the top and add sliced red chili for a fresh bit of heat.

Serve with lemon wedges on the side for squeezing over at the table.

A Few Tips So It Turns Out Right

Grating the onion into the meatballs keeps them tender and juicy.

If you chop the onion too roughly, the texture will be chunkier than you want.

Browning the meatballs first makes a big difference too.

That bit of colour adds so much flavour once they finish cooking in the sauce.

For the rice, let it rest after cooking.

That short resting time helps it stay fluffy instead of clumping together.

And do not rush the sauce.

You want it to simmer down until it looks deep red, glossy, and thick enough to coat the back of a spoon.

Easy Ways to Adjust It

If you want it spicier, add more chili flakes or a little harissa paste to the sauce.

If you want it milder, reduce the chili and let the warm spices do more of the work.

You can also add a handful of chopped olives if you want a saltier, more savoury edge.

And if you love herbs, a little extra cilantro at the end wakes the whole dish up.

What to Serve With It

The yellow rice already makes this feel like a complete meal, but a few extras would be great.

Warm flatbread works really well.

A cucumber salad would give you something cool and crisp next to the rich sauce.

And if you want to stretch it for a bigger dinner, roasted carrots or a simple green salad would fit in easily.

Leftovers

This reheats really well, which honestly makes it even more lovable.

Store the meatballs and sauce in an airtight container in the fridge for up to 3 days.

Keep the rice separate if you can.

Reheat gently on the stove or in the microwave with a splash of water if the sauce has thickened in the fridge.

The flavours get even deeper by the next day.

Quick Questions

Can I use lamb instead of beef?

Yes, absolutely.

Lamb would be delicious here and works beautifully with these spices.

Can I freeze the meatballs?

Yes.

You can freeze them either browned or fully cooked in the sauce.

Let everything cool first, then freeze in an airtight container for up to 3 months.

Can I make the rice ahead?

Yes.

Cook it, cool it, and refrigerate it.

Then reheat with a splash of water and fluff it again before serving.

Final Thoughts

If you want a dinner that looks vibrant and tastes like you put in far more effort than you actually did, this is the one.

The beef meatballs are juicy, the sauce is thick and spicy, the roasted peppers bring sweetness, and the yellow rice makes the whole thing feel complete.

Finish it with cilantro, red chili, and lemon, and it lands exactly where you want it to: comforting, bold, and very hard to stop eating.

 
 

Leave a Reply

Your email address will not be published. Required fields are marked *