Meatballs & PolpetteSauces & Sides
Swedish meatballs with cream gravy, the home version
Small beef and pork meatballs with grated onion and allspice, browned in butter and finished in a pan gravy with stock and cream. Mash and lingonberries go alongside.

A plate of Swedish meatballs is a small exercise in restraint. The meatballs are little, about the size of a large marble, soft rather than chewy, and seasoned so quietly that you notice the allspice only on the second bite. The gravy is pale brown and silky, made in the same pan from the browned bits the meatballs leave behind. Next to them sit smooth mashed potatoes, a spoonful of tart lingonberry jam and a few slices of quick-pickled cucumber. Each part is simple. Together they make one of the most comforting dinners I know.
I learned to make them in a shared kitchen in Montreal, from a friend whose family recipe arrived in her head rather than on paper, and I have adjusted it over the years with habits from my grandmother's notebooks, which were French but very fond of cream. This is my home version. Swedish families argue happily about the details (beef only or beef and pork, cream or milk in the mix, a dash of soy in the gravy or not), and every one of those versions is good.
What makes them Swedish
Three things set these apart from the Italian-American meatballs most of us grew up with.
The first is size. Swedish meatballs (köttbullar) are small, roughly 2.5 cm across. Small meatballs brown quickly, cook through in minutes, and give you more browned surface per bite, which is where the flavor of the gravy comes from.
The second is texture. The mix is soft, almost too soft to handle, because it carries a lot of liquid: breadcrumbs soaked in cream or milk, a grated onion, an egg. The result is a meatball that is tender and fine-grained, with no bounce.
The third is seasoning. Salt, white or black pepper, allspice, and often a little nutmeg. No garlic, no cheese, no herbs in the mix. The warmth of allspice is the signature, and a little goes a long way.
The mix
I use equal parts ground beef and ground pork. Beef gives depth, pork gives softness and sweetness. All beef works, but choose 80/20 rather than lean.
The onion matters more than you might expect. Grate it on the fine side of a box grater so it turns almost to a paste; chopped onion leaves crunchy bits and makes the meatballs break apart. Some cooks soften the onion in butter first for a sweeter, milder flavor. I do this when I have time, and I let it cool before it goes into the meat.
For the panade, plain dry breadcrumbs or panko soaked in heavy cream (or half cream, half milk) for a few minutes. The cream makes them richer than milk alone and helps them stay soft through reheating.
Mix everything except the meat first: soaked crumbs, egg, onion, salt, pepper, allspice, nutmeg. Then add the meat and mix with your hands just until even. The mix will look loose and wet. Chill it for at least 30 minutes, up to a few hours. Cold, it rolls cleanly; warm, it sticks to everything.
Rolling small and evenly
Wet hands, again, and a bowl of cold water beside you. Pinch off pieces of about 15 g, or use a small portion scoop (a #70 or #60 is close). Roll lightly between your palms. You are not trying to compress them, only to round them off.
The numbers help when you are planning. One pound of meat (450 g) plus the crumbs, cream, egg and onion makes about 650 g of mix. At 15 g each that is roughly 43 meatballs, which sounds like a lot until you see how small they are. Four people will eat that happily with potatoes. Double it for six with leftovers.
Set them on a tray lined with parchment as you go. If they flatten while you roll the rest, put the tray in the fridge for 10 minutes before browning.
Browning in butter
Brown the meatballs in a wide heavy skillet in a mix of butter and a little neutral oil. The butter tastes better and browns beautifully; the oil keeps the butter from burning. Work in batches so the pan is never crowded: crowded meatballs steam, go grey, and leave nothing in the pan for the gravy.
Shake the pan or roll them with a spoon every minute so they brown all around. Each batch takes about 6 to 8 minutes. Small meatballs are usually cooked through by the time they are evenly browned, but you will finish them in the gravy anyway. Move each batch to a plate and keep going. Do not wash the pan. Those brown bits stuck to the bottom are the gravy.
If you would rather not fry, roast them on an oiled sheet pan at 425°F (220°C) for about 12 minutes, shaking the pan halfway. You lose some of the fond, so make the gravy in a skillet with a tablespoon of extra butter and scrape the roasting pan juices into it.
The gravy
This is a simple pan sauce, and it is the reason the whole dish works.
Pour off all but about two tablespoons of fat from the skillet. Add a little more butter if the pan looks dry, then whisk in flour and cook it over medium heat for a minute or two, until it smells toasty and turns light brown. That is your roux.
Pour in the stock gradually, whisking and scraping the bottom of the pan so the browned bits dissolve into it. Beef stock is traditional; a mix of beef and chicken is gentler. When it is smooth and simmering, add the cream. Season with salt and pepper and a teaspoon of soy sauce. The soy is a common home method for a deeper color and a savory edge; a little Worcestershire or a teaspoon of Dijon mustard does a similar job if you prefer.
Simmer until the gravy coats the back of a spoon, then return the meatballs and let them sit in it over low heat for 5 minutes. If the gravy thickens too much, thin it with a splash of stock. It should be pourable, not gluey.
Finally, taste. Swedish meatball gravy often wants a little more salt than you expect, because the cream softens everything.
The recipe
Swedish meatballs with cream gravy
- Makes
- About 40 small meatballs, serves 4
- Prep
- 40 min
- Cook
- 35 min
- Total
- 1 hr 15 min
Ingredients
Meatballs
- 1/2 cup30 g panko or 1/3 cup (35 g) fine dry breadcrumbs
- 1/3 cup80 ml heavy cream
- 1 small1 small (about 80 g) yellow onion, finely grated
- 1 large egg
- 1 1/4 tsp1 1/4 tsp (about 7 g) fine salt
- 1/2 tsp ground allspice
- 1/4 tsp ground white or black pepper
- 1 pinch freshly grated nutmeg
- 1/2 lb225 g ground beef, 80/20
- 1/2 lb225 g ground pork
- 2 tbsp30 g unsalted butter, for browning
- 1 tbsp15 ml neutral oil
Gravy
- 2 tbsp30 g unsalted butter
- 3 tbsp25 g all-purpose flour
- 2 cups480 ml beef stock, or half beef and half chicken
- 1/2 cup120 ml heavy cream
- 1 tsp5 ml soy sauce
- to taste salt and pepper
To serve
- 1 1/2 lb700 g potatoes, boiled and mashed with butter and milk
- 4 tbsp lingonberry jam, or whole-berry cranberry sauce
- 1/2 cucumber, thinly sliced and tossed with vinegar, sugar and salt
Method
- Stir the panko into the cream in a large bowl and leave it for 5 minutes until soft.
- Add the grated onion, egg, salt, allspice, pepper and nutmeg and mix well.
- Add the beef and pork and mix gently with your hands until evenly combined. Cover and chill for 30 minutes.
- With wet hands, roll the mix into balls of about 15 g (a generous 2.5 cm) and set them on a parchment-lined tray.
- Heat the butter and oil in a wide skillet over medium heat. Brown the meatballs in batches without crowding, shaking the pan often, 6 to 8 minutes per batch. Move them to a plate.
- Pour off all but about 2 tablespoons of fat. Add the butter for the gravy, then whisk in the flour and cook for 1 to 2 minutes until light brown.
- Whisk in the stock a little at a time, scraping up the browned bits, until smooth. Bring to a simmer.
- Stir in the cream and soy sauce, season with salt and pepper, and simmer for 3 to 4 minutes until it coats a spoon.
- Return the meatballs to the pan and keep them over low heat for 5 minutes, until the center of the largest reads 160°F (71°C).
- Serve with mashed potatoes, lingonberry jam and the quick cucumber pickle.
Cook's notes
- Thin the gravy with a splash of stock if it gets thick while it waits.
- The quick pickle: 1/2 thinly sliced cucumber, 2 tbsp (30 ml) white vinegar, 1 tsp sugar and a pinch of salt, left for 15 minutes.
The things on the side
The classic plate has four parts, and each has a job.
Mashed potatoes soak up the gravy. Make them smooth and buttery; a ricer helps. Boiled new potatoes with dill are a good lighter option in summer.
Lingonberry jam brings sharpness and sweetness that cut through the cream. Lingonberries are small, tart red berries from Scandinavia, and the jam is sold in many supermarkets and Scandinavian shops. Whole-berry cranberry sauce is the best substitute I have found, especially a less sweet one.
Pickled cucumber (pressgurka) is the fresh crunch. Thin slices tossed with vinegar, sugar and salt for 15 minutes are enough.
Some families add a few boiled peas or a green salad. Some put the meatballs on buttered egg noodles instead of potatoes, which is more common in American homes than in Sweden, and very good.
Making ahead and reheating
The meatballs can be rolled a day ahead and kept covered in the fridge, or frozen raw on a tray and then bagged. Brown frozen meatballs straight from the freezer over slightly lower heat so the outside does not burn before the middle warms; add a few minutes per batch.
Cooked meatballs in gravy keep for 3 to 4 days in the fridge. Reheat them gently in a covered pan over low heat with a splash of stock, until a meatball reads 165°F (74°C) in the center. Cream gravies can split if they boil hard, so keep them at a bare simmer and whisk in a little cold cream if they start to look grainy.
For a party, make the meatballs and the gravy ahead, then warm them together in a slow cooker on low and serve with toothpicks. They hold well for a couple of hours.
When the gravy goes wrong
A few fixes for the usual problems.
- Lumpy gravy: the stock went in too fast. Whisk hard, or pour it through a sieve and return it to the pan.
- Too thin: simmer a few minutes longer, or whisk a teaspoon of flour into a tablespoon of soft butter and stir small bits of that paste into the simmering gravy.
- Too thick: thin with stock, a spoonful at a time.
- Pale and bland: the meatballs were crowded and did not brown, so there was no fond. Add a little more soy sauce and pepper, and next time brown in smaller batches.
- Burnt bits in the pan: if the fond turned black rather than brown, wipe the pan out and start the roux fresh; burnt fond makes bitter gravy.
A note on the classic Italian-American cousin
If you have made the beef and pork meatballs in red sauce, you already know most of the technique here: a soaked bread or crumb paste, gentle mixing, wet hands. The Swedish version simply goes smaller, softer and creamier, and swaps the tomato for a gravy built in the pan. More small meatballs and the sauces that suit them are in the meatball kitchen and on the sauces and sides shelf.
Questions people ask
Can I make Swedish meatballs without pork?
Yes. Use all beef (80/20), or beef with a little ground veal. They will be slightly firmer and beefier.
What can I use instead of lingonberry jam?
Whole-berry cranberry sauce is closest. Redcurrant jelly also works. You want something tart and red.
Why are my meatballs dense?
Too little liquid in the mix, too lean a meat, or too much handling. Keep the mix soft, chill it instead of adding more crumbs, and roll lightly.
Can I use milk instead of cream?
In the meatballs, yes, whole milk works. In the gravy, cream gives the classic silky texture; milk makes a thinner, lighter sauce that is more likely to split when reheated.

Odile Moreau
Odile cooked her way through her Alsatian grandmother's notebooks and learned to pleat dumplings in a shared kitchen in Montreal. She writes about gyoza, pierogi, soup dumplings, Swedish meatballs and the gravies and dipping sauces that go with them.



