Go Back
Swedish meatballs in creamy brown gravy over mashed potatoes with a spoonful of lingonberry jam, on marble surface

Swedish Meatballs

Tender Swedish meatballs made with beef and pork, gently spiced with allspice and nutmeg, browned in a skillet, then finished in a creamy brown gravy. Served over classic mashed potatoes with a spoonful of lingonberry-style jam at the edge. The key is a soft panade, gentle mixing, proper browning, and a smooth gravy built from the meatball drippings. Building the meatballs with a proper panade — breadcrumbs fully hydrated in milk and egg — is the technique this whole dish depends on for genuinely tender results, since that soft, hydrated structure is what keeps the meat from turning dense even after simmering in gravy, the same panade-for-tenderness principle used elsewhere in this collection whenever ground meat needs real moisture insurance built directly into the mixture. Softening the onion before it ever meets the meat is what gives the finished meatballs a sweeter, more classic flavour rather than a sharp, raw onion bite. Browning the meatballs only for colour, then finishing them fully in the gravy, is what keeps them tender rather than dried out from a single, complete cooking stage. The payoff is a dish with real comfort and depth — soft, gently spiced meatballs in a glossy, creamy brown gravy over classic mashed potatoes.
Prep Time 30 minutes
Cook Time 45 minutes
Total Time 1 hour 15 minutes
Servings: 4
Course: Main Course
Cuisine: Swedish
Calories: 920

Ingredients
  

For the Mashed Potatoes
  • 1000 g potatoes peeled and cut into even chunks
  • Water for boiling
  • 12 g fine sea salt for the cooking water
  • 80 g unsalted butter
  • 180 ml whole milk warmed
  • 60 ml heavy cream warmed
  • Fine sea salt to taste
  • White pepper or black pepper to taste
For the Panade
  • 80 g plain breadcrumbs
  • 160 ml whole milk
  • 1 large egg
For the Meatballs
  • 550 g ground beef
  • 250 g ground pork
  • 120 g yellow onion very finely diced
  • 20 g unsalted butter for cooking the onion
  • 10 g fine sea salt
  • 2 g black pepper
  • tsp ground allspice
  • ¼ tsp ground nutmeg
  • 15 g fresh parsley finely chopped
  • 20 ml neutral oil for browning
  • 20 g unsalted butter for browning
For the Creamy Brown Gravy
  • Meatball pan drippings
  • 35 g unsalted butter
  • 35 g all-purpose flour
  • 500 ml beef stock
  • 150 ml heavy cream
  • 10 ml soy sauce optional but good for classic color and depth
  • 1 tsp Dijon mustard optional
  • Black pepper to taste
  • Fine sea salt to taste
For Serving
  • Lingonberry jam or cranberry jam
  • Chopped parsley
  • Extra black pepper

Method
 

Start the Mashed Potatoes
  1. Place the potatoes in a pot and cover with cold water. Add the salt and bring to a boil. Simmer until the potatoes are fully tender, about 18 to 22 minutes depending on size. Drain well and let them steam-dry in the hot pot for 2 minutes. Watery potatoes make loose mash. Letting them steam-dry before mashing gives you a thicker, cleaner potato base. That brief steam-dry lets residual surface moisture evaporate off the cooked potatoes before any dairy is added, protecting the finished mash from turning thin or waterlogged.
Finish the Mashed Potatoes
  1. Mash the potatoes until smooth. Add the butter first and mix until melted. Gradually add the warm milk and warm cream until the potatoes are soft, creamy, and spoonable. Season with salt and pepper. Keep warm while you make the meatballs. Add the dairy warm, not cold. Cold milk tightens the mash and makes it heavier. Warm dairy incorporates into the hot potato without shocking its temperature down, keeping the starches relaxed and the texture genuinely light rather than gluey.
Make the Panade
  1. In a large bowl, combine the breadcrumbs, milk, and egg. Let sit for 10 minutes, until the breadcrumbs fully hydrate. The panade is what keeps Swedish meatballs tender. If the breadcrumbs stay dry, the meatballs become dense. That fully hydrated bread structure works its way through the meat mixture, physically interrupting the protein strands from binding into as tight a network as beef and pork alone would form.
Cook the Onion
  1. Melt the butter in a small pan over medium-low heat. Add the finely diced onion and cook for 5 to 7 minutes, until soft and translucent but not browned. Let cool for a few minutes. Raw onion can stay sharp inside the meatballs. Softening it first gives a sweeter, more classic flavor and a better texture. Cooling the onion briefly before it meets the meat matters directly here — mixing genuinely hot onion straight into the raw beef and pork would begin cooking the exterior of the mixture prematurely, working against the gentle, even mixing this recipe depends on.
Mix the Meatballs
  1. Add the ground beef, ground pork, cooked onion, salt, black pepper, allspice, nutmeg, and parsley to the panade. Mix gently with your hands just until evenly combined. Shape into meatballs, about 35 to 40g each. You should get around 22 to 24 meatballs. Do not overmix. Swedish meatballs should be tender and soft, not springy like sausage. Ground meat's proteins bind together more tightly the more they're handled, and stopping the mixing the moment everything is evenly distributed is exactly what keeps that binding from tightening into the springier, sausage-like texture this dish specifically avoids.
Brown the Meatballs
  1. Heat a large skillet over medium-high heat. Add the neutral oil and butter. Brown the meatballs in batches, turning gently, for about 5 to 7 minutes per batch. They should be browned on the outside but do not need to be fully cooked through yet. Transfer browned meatballs to a plate. Brown the meatballs in batches. Crowding the pan makes them steam, and you lose the browned bits that build the gravy. That deliberate partial cook leaves genuine headroom for the meatballs to finish gently in the gravy later, while the fond left behind in the pan becomes the actual foundation of the gravy itself.
Build the Gravy
  1. Lower the heat to medium. Keep the browned bits and drippings in the pan. Add the butter. Once melted, sprinkle in the flour and whisk for 1 to 2 minutes, until it turns light golden and smells slightly nutty. Gradually whisk in the beef stock, scraping the bottom of the pan. Simmer for 4 to 5 minutes, until the gravy begins to thicken. Add the heavy cream, soy sauce if using, Dijon if using, black pepper, and salt to taste. Add the stock gradually while whisking. This keeps the gravy smooth instead of lumpy. Cooking the flour briefly in the butter before any liquid is added is what removes its raw, starchy taste and lets it thicken the gravy smoothly once the stock joins, rather than leaving a raw flavour or uneven, lumpy result.
Finish the Meatballs in the Gravy
  1. Return the meatballs and any juices from the plate to the skillet. Simmer gently for 8 to 10 minutes, turning once or twice, until the meatballs are cooked through and coated in glossy creamy gravy. Keep the gravy at a gentle simmer, not a hard boil. Hard boiling can make the gravy split and the meatballs tighten. Because the meatballs were deliberately browned only for colour, this gentle simmer is genuinely enough to finish cooking them through — a hard boil at this stage risks both splitting the cream-enriched gravy and toughening meat that was specifically left underdone to finish tender here.
Serve
  1. Spoon the mashed potatoes into bowls. Add the Swedish meatballs and plenty of creamy brown gravy. Place a spoonful of lingonberry-style jam at the edge. Finish with chopped parsley and black pepper. That spoonful of tart lingonberry or cranberry jam served at the edge, rather than stirred in, gives each bite the option of bright, sweet-tart contrast against the rich, savoury gravy exactly when wanted.

Notes

Building the meatballs with a proper panade deserves genuine respect as the technique responsible for their tender, soft final texture, exactly as the recipe's own notes emphasise. That hydrated bread structure physically interrupts the meat's protein network from binding as tightly as beef and pork alone would form — skipping this step would produce a noticeably denser meatball regardless of how carefully everything else is handled.
Softening the onion before it ever meets the raw meat, then letting it cool before mixing, reflects real, deliberate technique rather than an optional extra step. Raw onion mixed directly into meatballs stays genuinely sharp and can release moisture unevenly during cooking; pre-softened onion instead contributes sweetness and a more classic, integrated flavour throughout the finished meatball.
Browning the meatballs only for colour, deliberately leaving them not fully cooked through, reflects the same two-stage protein cooking principle used throughout this collection's other braised or sauce-finished meat dishes. That initial browning builds real flavour and the fond the gravy depends on, leaving genuine headroom for the meatballs to finish gently in the simmering gravy afterward.
The recipe's own explicit warning against boiling the gravy hard once the meatballs return deserves real attention. A cream-enriched gravy is genuinely vulnerable to splitting under aggressive heat, and that same hard boil would also toughen meatballs that were deliberately left underdone specifically to finish tender at this final, gentle stage.