Ingredients
Method
Start the Mashed Potatoes
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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.
