South African Meatballs Recipe with Tomato Gravy

Updated November 3, 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

South African Meatballs Recipe with Tomato Gravy

South African meatballs, often called frikkadels, are seasoned ground meat shaped into tender rounds and served as a home-style main dish. Recipes vary between households; this version browns beef meatballs and simmers them in a gently spiced tomato gravy, with coriander, chutney, and Worcestershire adding a savory-sweet South African-inspired character.

Ingredients

  • 1½ lb (680 g) ground beef, preferably not extra-lean
  • 1 cup (70 g) soft fresh breadcrumbs
  • ⅓ cup (80 ml) milk
  • 1 large egg (about 50 g without the shell)
  • 1 small onion, finely grated or minced (about 4 oz / 115 g)
  • 2 garlic cloves, finely minced (about 6 g)
  • 2 tbsp (8 g) chopped fresh parsley
  • 1½ tsp (3 g) ground coriander
  • 1 tsp (6 g) fine salt
  • ½ tsp (1 g) ground black pepper
  • 2 tbsp (30 ml) neutral cooking oil, divided
  • 1 medium onion, finely chopped (about 5 oz / 150 g)
  • 2 garlic cloves, minced (about 6 g)
  • 1 tbsp (16 g) tomato paste
  • 1 can crushed tomatoes, 28 oz (800 g)
  • 1 cup (240 ml) beef stock or water
  • 1 tbsp (20 g) fruit chutney
  • 1 tbsp (15 ml) Worcestershire sauce
  • 1 tsp (2 g) paprika
  • ½ tsp (3 g) fine salt for the sauce, plus more to taste

Instructions

  1. Soften the breadcrumbs. Put the breadcrumbs in a large mixing bowl, pour over the milk, and leave for about 2 minutes. The crumbs should absorb most of the liquid and feel soft rather than soupy. This small step helps the meatballs stay moist while they simmer; dry crumbs can draw moisture out of the beef.
  2. Mix the meatball mixture. Add the egg, grated small onion, minced garlic, parsley, ground coriander, salt, and pepper to the soaked crumbs. Stir briefly, then add the ground beef. Use clean hands or a fork to combine everything just until evenly distributed. Avoid kneading or compressing the mixture, which can make cooked meatballs firm and dense.
  3. Shape evenly. Divide the mixture into 20 portions, roughly 1½ inches (4 cm) across, and roll them gently into balls. A lightly oiled tablespoon or small scoop makes portioning easier. Set the shaped meatballs on a plate while you prepare the pan. Keep them similar in size so they brown and finish cooking at about the same rate.
  4. Brown the meatballs. Heat 1 tablespoon (15 ml) of the oil in a wide, heavy skillet or shallow Dutch oven over medium heat. Brown the meatballs in two batches, turning carefully, for about 4 to 5 minutes per batch. They do not need to be cooked through yet. Transfer them to a clean plate; leaving space between them in the pan helps them brown instead of steam.
  5. Build the tomato gravy. Add the remaining 1 tablespoon (15 ml) oil to the pan. Add the chopped medium onion and cook for about 4 minutes, stirring until softened. Stir in the garlic and tomato paste and cook for 1 minute. Add the crushed tomatoes, stock, chutney, Worcestershire sauce, paprika, and ½ teaspoon salt. Scrape up the browned bits from the bottom of the pan, bring the sauce to a gentle simmer, and cook for 10 minutes, stirring occasionally.
  6. Simmer until safely cooked. Nestle the browned meatballs into the sauce and turn them once to coat. Cover the pan, lower the heat, and simmer gently for 15 minutes, turning the meatballs once if convenient. Check the center of a larger meatball with a food thermometer; USDA FSIS guidance sets the safe minimum internal temperature for ground beef at 160°F (71°C). If needed, continue simmering and check again. Avoid a hard boil, which can break the meatballs apart.
  7. Adjust and serve. Taste the gravy and add salt or pepper if needed. If it is thicker than you like, stir in a splash of water or stock; if it seems thin, lift out the meatballs and simmer the sauce uncovered for a few minutes. Spoon the hot tomato gravy over the meatballs and serve while warm.

Tips

  • Choose beef with some fat. Ground beef around 85% lean gives a tender result and adds flavor to the gravy. Leaner beef also works, but take extra care not to overmix it or simmer it longer than necessary. If the meat is very fatty, spoon off excess fat after browning, leaving a little behind for the onions.
  • Use a useful breadcrumb substitute. If you do not have fresh breadcrumbs, use ½ cup (about 55 g) dry breadcrumbs and increase the milk to ½ cup (120 ml). Let the crumbs soak for 5 minutes before adding the other meatball ingredients. The mixture should hold its shape; if it feels loose, mix in another tablespoon of crumbs.
  • Keep the sauce at a gentle simmer. Bubbling vigorously can cause the meatballs to split or stick, especially if the pan is crowded. Use a broad pan and turn the meatballs carefully with a spoon. If your pan is too small to fit them in one layer, simmer them in two batches or use a larger pot.
  • Season after the sauce reduces. Stock, Worcestershire sauce, and chutney can all contribute salt or sweetness. Taste the finished gravy before adding more salt, and balance a particularly sweet chutney with a small splash of water or a little extra tomato rather than adding salt automatically.

Serving Suggestions

For a comforting supper, spoon the meatballs and plenty of gravy over soft maize meal porridge, often called pap. Rice, mashed potatoes, or buttered noodles are also practical choices because they soak up the sauce. If serving pap, keep it fairly plain so the savory tomato gravy remains the main seasoning; rice is especially useful when you want a simple, quick side.

Add a green vegetable or a crisp salad to make the plate feel balanced in texture. Steamed green beans, cabbage, or spinach work well, as do roasted carrots or a salad of sliced tomato and cucumber. Put extra chutney on the table for anyone who likes a sweeter finish, and offer a small bowl of the gravy separately so diners can add as much as they want.

Variations

Make them with lamb. Replace some or all of the beef with ground lamb. Lamb has a more pronounced flavor that pairs well with coriander and tomato; use the same quantities and temperature check. For a milder option, use a half-and-half mixture of beef and lamb.

Adjust the warm spices. Add ½ teaspoon (1 g) ground cumin to the meat mixture for a deeper, earthier note, or add a pinch of chili flakes to the sauce for gentle heat. These are optional changes rather than fixed requirements, since South African frikkadel recipes vary by cook and household. Start modestly so the spices do not overwhelm the beef and chutney.

Make a richer or simpler gravy. For extra richness, stir 2 tablespoons (30 ml) of cream into the sauce after the meatballs are cooked, then warm gently without boiling. For a more tomato-forward sauce, omit the chutney and add 1 teaspoon (5 ml) vinegar plus 1 teaspoon (4 g) sugar. Chutney is a practical source of fruity sweetness; vinegar and sugar give a simpler sweet-and-sour balance but less layered fruit flavor.

Use a different ground meat. Ground pork or a pork-and-beef blend can be used, but check that the center reaches 160°F (71°C), the safe minimum for ground meat. Ground turkey is another option, though it is leaner and can dry out if overcooked; use a thermometer and take it to 165°F (74°C), the USDA FSIS safe minimum for poultry.

Storage and Reheating

Transfer leftover meatballs and sauce to a shallow, covered container and refrigerate within 2 hours of cooking. They keep for 3 to 4 days in the refrigerator. Store them with the gravy so the meat stays moist, and label the container with the date if you are likely to lose track of when it was made.

Reheat only the portion you plan to eat, either in a covered saucepan over low heat or in the microwave. Stir or turn the meatballs partway through, adding a tablespoon or two of water if the gravy has thickened. Reheat leftovers to 165°F (74°C), checking the center of a meatball with a food thermometer. For longer storage, freeze cooled portions in airtight, freezer-safe containers for about 2 to 3 months for best quality; thaw overnight in the refrigerator before reheating. Do not leave cooked meatballs at room temperature for extended storage.

Frequently Asked Questions

Are South African meatballs the same as frikkadels?

Frikkadels are South African-style meat patties or meatballs, and the exact shape and seasoning vary from recipe to recipe. Some are cooked without sauce and served as patties, while other home-style versions are served with gravy. This recipe shapes the mixture into small balls and finishes them in tomato sauce, so it is one practical variation rather than a single definitive formula.

Can I prepare the meatballs ahead?

Yes. Shape the uncooked meatballs, cover them, and refrigerate for up to 1 day before browning and simmering. Keep raw ground beef refrigerated and separate from ready-to-eat foods. You can also make the tomato sauce a day ahead and refrigerate it; reheat it to a simmer, then add browned meatballs and cook until the center reaches the required safe temperature.

Why are my meatballs tough or falling apart?

Tough meatballs usually come from overworking the beef, packing the balls too tightly, or cooking them too vigorously. Mix only until the ingredients come together and keep the simmer gentle. Meatballs that fall apart may have too much liquid or too little binder; check that the breadcrumbs have absorbed the milk, and add a tablespoon of breadcrumbs if the mixture is very soft before shaping.

Can I bake the meatballs instead of browning them in a pan?

Yes. Arrange the shaped meatballs on a lightly oiled, foil-lined rimmed baking sheet with space between them, then bake at 400°F (200°C) for about 15 to 18 minutes, turning once if desired. Check a larger one with a thermometer and make sure it reaches 160°F (71°C). Add them to the prepared sauce and simmer for about 5 minutes to let them take on its flavor. Baking changes the browning and may leave less fond for the gravy, but it is useful when you want to avoid pan-frying in batches.

Can I make this recipe without chutney?

Yes. Leave it out and add 1 teaspoon (5 ml) vinegar and 1 teaspoon (4 g) sugar, or use a spoonful of apricot jam with a small splash of vinegar. Chutney contributes fruit, sweetness, and seasoning, so the substitute will taste simpler. Taste the sauce before serving and adjust the acidity or sweetness gradually rather than adding a large amount at once.

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).