Skip to content
Recipes

Sour Meatball Soup

Small, tender meatballs bound with a little rice, poached gently in a light vegetable broth and finished with a bright hit of lemon or vinegar. Comfort in a bowl, with a sour edge that keeps it lively.

A bowl of sour meatball soup with vegetables and fresh herbs
Tender rice-studded meatballs in a bright, tangy broth.

There’s a moment near the end of this soup where you add the sour, and for a long time it was the only part of any recipe I could reliably ruin. Years ago I tipped a full measured slug of vinegar into the pot all at once and served six people a soup that made everyone’s cheeks pull in. The meatballs were tender, the broth clear, and none of it mattered: all anyone could taste was the pucker. Now I add the sour a spoonful at a time, tasting as I go, and this sour meatball soup has become one of the most comforting, forgiving things I cook.

Why this soup works

It comes down to three things lining up: light meatballs, a gentle poach, and sourness you can control. The meatballs carry a little raw rice, which does double duty. It keeps them tender from the inside, and as it cooks it leaks a whisper of starch into the broth, giving the soup a soft body with no flour or thickening. The vegetables — onion, carrot, celery, parsnip, and a spoon of tomato — build a light, faintly sweet base that the sour cuts straight through. Balanced right, each spoonful lands between savory and bright, and that contrast is the whole point of the bowl.

Meatballs that stay light and tender

Start with ground pork, or a pork-and-beef mix, and don’t reach for the leanest you can find; a little fat keeps the meatballs juicy through a quarter-hour in hot liquid. Into the meat go the rinsed raw rice, one egg, and — the move I’d argue matters most — half an onion, grated rather than chopped. Grated onion melts in and seasons from within, and the moisture it carries is what stops the meatballs turning dense. Season well with salt and pepper, then mix with a light hand, folding just until even. Overworked meat goes tight and springy, the way it does in a burger, so stop the moment it comes together.

Two small habits make the shaping easier. Chill the mixture for fifteen or twenty minutes first, so it firms up and holds a round; and keep a bowl of cold water beside you to wet your hands, which stops the meat sticking to your palms. Roll them small, a little under a walnut, around a heaped teaspoon each. Small meatballs cook through evenly, and hold together far better than big, tightly packed ones.

The broth, and a gentle poach

The broth doesn’t need to be complicated to taste like something. Soften the chopped onion in a little oil, then add the diced carrot, celery, and parsnip and sweat them for a few minutes so they turn sweet rather than raw. Stir in the tomato paste and cook it a minute — that quick fry takes the tinny edge off — then cover with water or a light stock and simmer about fifteen minutes, until the vegetables are nearly tender. Keep it clear and light-bodied; this is a soup, not a stew, and the sourness needs room to show.

Heat and timing that matter

This is where most sour meatball soups go wrong, and it comes down to one word: temperature. The meatballs need to poach, not boil. With the vegetables nearly done, bring the pot to the barest simmer — the surface just shivering, around 185°F (85°C), well short of a rolling boil — and lower the meatballs in one at a time so the liquid stays hot. Leave them be for the first few minutes while the outsides set; stir too early and a soft, raw meatball breaks up. They sink, then rise as the rice inside swells — a floating meatball is a good early sign. Skim the grey foam off the top; that’s just released protein, and lifting it away keeps the broth clear. Give them 15 to 18 minutes at that lazy simmer, then lift one out and cut it open: the rice should be tender and the center fully cooked, with no raw pink. Cooking the meat all the way through is simply the sensible habit here.

Getting the sourness right

Sourness is the signature of this soup and the easiest thing to overdo. Add it at the very end, once the meatballs are cooked and the pot is off or nearly off the heat, so that bright edge doesn’t simmer away into something flat and vinegary. You have two options. Lemon juice gives a rounder, fruitier sour; a splash of vinegar, white wine or plain white, is sharper and more direct. Either way, add it gradually, a tablespoon at a time, and taste after each go. The soup should make you sit up a little, not wince.

Salt and sour work as a pair. A soup that tastes too sour is sometimes just under-salted, so try a pinch of salt before adding more acid. If you do overshoot, a little sugar or an extra ladle of plain broth pulls it back. Finish off the heat with a generous handful of chopped fresh herbs — parsley and dill are the usual pair, and lovage, if you can find it, adds a deep, savory note.

Common sour meatball soup mistakes

  • Meatballs fell apart: the broth was boiling, or you stirred too soon. Keep it at a bare simmer and don’t touch them for the first few minutes.
  • Meatballs turned dense and tough: the meat was overmixed or too lean. Fold gently, just until combined, and choose meat with a little fat.
  • Cloudy broth: a hard boil churns the fat and foam back into the liquid. Simmer gently and skim the grey foam early.
  • Too sour to eat: the acid went in all at once. Add it a spoonful at a time, tasting, and rescue an over-soured pot with a little salt, sugar, or extra broth.
  • Flat and dull: under-salted, or the sour was added too early and cooked off. Season properly and add the lemon or vinegar right at the end.

Variations worth trying

The soup bends easily. Swap the pork for all beef, or for chicken or turkey, which make a more delicate bowl. For the sour itself, some cooks reach for sauerkraut brine or buttermilk, and a spoonful of sour cream stirred in at the end gives a richer, mellower result. Bulk it up with diced potato or green beans, or add more tomato for a heartier broth. A pinch of chili suits anyone who likes a warm edge under the sour.

What to serve alongside

This is a light soup, so I keep the table simple. Good crusty bread is really all it asks for, for dipping and catching the last of the broth. A spoonful of sour cream swirled into each bowl softens the sourness and makes it more filling. If it’s the whole meal, add cheese and a few pickles alongside.

Make-ahead and storage

Like most soups, this one settles and deepens overnight, and it keeps three to four days in the fridge. The rice drinks up broth as it sits, so when you reheat, add a splash of water or stock to loosen it. Warm it gently rather than at a hard boil, to keep the meatballs whole, and brighten it with a little fresh lemon and herbs just before serving, since that sparkle fades in the fridge. It freezes for a couple of months too, though the rice softens further on thawing; cool it completely and freeze in portions.

Sour meatball soup FAQ

Do I need to precook the meatballs?

No. They poach straight in the broth, raw, which flavors the soup and keeps them tender. Browning them first makes a heavier dish; for this light, sour soup, drop them in raw and let the broth do the work.

Should I use lemon juice or vinegar?

Either works, so use what you have and what you like. Lemon is rounder and a little fruity; vinegar is sharper and cleaner. Whichever you choose, add it slowly at the end and taste as you go, rather than measuring it all in at once.

Why did my broth turn cloudy?

Almost always a boil, which batters the meatballs and churns fat and protein back into the liquid. Keep the soup at a gentle simmer and skim the foam in the first few minutes, and the broth stays clear.

Sour Meatball Soup

  • Servings6 servings
  • Prep30 min
  • Cook45 min
  • Total1 hr 15 min

Ingredients

  • 500 g (about 1 lb) ground pork, or a pork-and-beef mix
  • 3 tbsp (about 40 g) rice, rinsed
  • 1 egg
  • 2 onions (1 grated for the meatballs, 1 chopped for the broth)
  • 2 carrots, diced
  • 2 celery stalks, sliced
  • 1 small parsnip, diced
  • 2 tbsp tomato paste
  • Juice of 2 lemons, or 3 tbsp (45 ml) vinegar, to taste
  • Salt and pepper, to taste
  • A large handful of fresh parsley and dill (or lovage), chopped

Instructions

  1. Soften the chopped onion in a little oil, then add the diced carrot, celery, and parsnip and sweat for a few minutes. Stir in the tomato paste, cook a minute, then cover with water or light stock and simmer about 15 minutes, until the vegetables are almost tender.
  2. Meanwhile, mix the ground meat with the raw rice, egg, grated onion, salt, and pepper, folding gently just until combined. Chill for 15 to 20 minutes so the mixture firms up.
  3. With wet hands, roll the mixture into small meatballs, a little under a walnut each.
  4. Bring the broth down to the barest simmer, about 185°F (85°C), and lower the meatballs in one at a time. Leave them undisturbed for the first few minutes so they set.
  5. Poach gently for 15 to 18 minutes, skimming any grey foam, until the meatballs float and are cooked through with tender rice inside.
  6. Off the heat, add the lemon juice or vinegar a little at a time, tasting as you go, and adjust the salt until the soup is bright but not sharp.
  7. Stir in the fresh herbs and let the soup rest a few minutes before serving.

The information on Kepoli is provided for general informational purposes only and is not professional medical, health, nutritional, or safety advice. Always use your own judgment and consult a qualified professional before acting on it.