Soft, well-spiced meatballs simmered in a glossy cream gravy that tastes far more special than the short ingredient list suggests. Serve with buttery mashed potato and a spoonful of lingonberry for the true Swedish contrast of savoury and tart-sweet.
Real Swedish meatballs, or kottbullar, are smaller and softer than their Italian cousins, gently spiced with allspice and nutmeg and bound with a milk-soaked breadcrumb panade. The magic is the pan gravy: beef stock and cream loosened with the browned bits from the meatballs. A dab of tart lingonberry cuts through the richness beautifully.
Ingredients
- 60g fresh white breadcrumbs — about 2 slices, crusts off
- 100ml whole milk
- 400g beef mince — 10-15% fat
- 200g pork mince — or use 600g beef total
- 1 small onion, very finely grated
- 1 egg yolk
- 0.5 tsp ground allspice
- 0.25 tsp ground nutmeg
- 1 tsp fine salt
- 40g butter — for frying
- 1 tbsp plain flour
- 400ml beef stock (14 fl oz)
- 150ml double cream
- 1 tsp dark soy sauce — for colour and depth
- 2 tbsp lingonberry jam — to serve; redcurrant jelly works too
Method
- Tip the breadcrumbs into a large bowl, pour over the milk and leave to soak for 5 minutes until mushy. This panade keeps the meatballs soft.
- Add the beef and pork mince, grated onion, egg yolk, allspice, nutmeg, salt and a good grind of black pepper. Mix with your hands until just combined, then fry a teaspoon of the mixture to taste for seasoning and adjust.
- With damp hands, roll into small, even balls about the size of a walnut; you should get roughly 24. Chill on a plate for 10 minutes if you have time, which helps them hold their shape.
- Melt the butter in a large frying pan over medium heat. Fry the meatballs in two batches, turning often, for 8-10 minutes until browned all over and cooked through with no pink in the middle. Lift onto a plate.
- Stir the flour into the buttery pan juices and cook for 1 minute. Gradually whisk in the beef stock, scraping up all the browned bits, then bring to a gentle simmer until slightly thickened.
- Pour in the cream and soy sauce and simmer for 2-3 minutes until the gravy coats the back of a spoon. Taste and season.
- Return the meatballs and any resting juices to the pan, spoon the gravy over and simmer gently for 3-4 minutes until piping hot throughout.
- Serve straight away with mashed potato and a spoonful of lingonberry jam on the side.
Serve it with
- Buttery mashed potato
- Lingonberry jam
- Quick-pickled cucumber
- Steamed green beans
- Boiled new potatoes with dill
Why this works
The milk-soaked breadcrumb panade traps moisture so the meatballs stay tender rather than dense, while deglazing the fond builds a gravy with real roasted depth from a handful of pantry ingredients.
Common swaps
- Swap pork for extra beef, or use a beef-and-veal mix for a classic Swedish blend
- No lingonberry? Redcurrant jelly or cranberry sauce give the same tart-sweet lift
- Use gluten-free breadcrumbs and a cornflour slurry to thicken for a gluten-free version
- Stir a teaspoon of Dijon into the gravy for a sharper, more grown-up flavour
Common mistakes to avoid
- Overworking the mince makes tough, rubbery meatballs; mix only until it just comes together
- Skipping the panade leaves them dense and dry rather than soft
- Crowding the pan steams the meatballs instead of browning them, so fry in batches
- Boiling the gravy hard after adding cream can make it split; keep it at a gentle simmer
Storage, freezing & reheating
Storage: Cool leftovers quickly and keep in an airtight container in the fridge for up to 3 days.
Freezing: Freezes well for up to 3 months, either cooked in the gravy or as browned meatballs alone. Defrost fully in the fridge before reheating.
Reheating: Reheat gently in a covered pan over low heat, loosening the gravy with a splash of stock or milk, until piping hot throughout.
Allergen notes: contains Milk, Gluten, Egg, Soya. Always check individual product labels.
Estimated nutrition
Per serving, estimated from typical ingredient values — not a substitute for precise dietary calculation.
| Calories | 560 kcal |
|---|---|
| Protein | 34g |
| Carbohydrate | 16g |
| Fat | 40g |