Swedish Meatballs
Tender, juicy meatballs seasoned with warm spices like allspice and nutmeg, pan-fried until golden brown, then finished in a rich, creamy gravy. A beloved Swedish comfort food that pairs beautifully with mashed potatoes and lingonberry jam.
For 4 servings
- prep · ~10 min
Soak the breadcrumbs.
In a large mixing bowl, combine breadcrumbs and milk. Let them soak for 10 minutes until the breadcrumbs absorb the milk and soften completely.
TIPThis panade keeps the meatballs moist and tender — don't skip this step. - saute · ~5 min
Sauté the onion and garlic.
Heat 1 tablespoon of oil in a small pan over medium heat. Add the minced onion and cook until soft and translucent, about 4 minutes. Add the minced garlic and cook for another 30 seconds until fragrant. Remove from heat and let cool slightly.
- mix · ~3 min
Combine the meatball mixture.
1.Add the soaked breadcrumb mixture, cooled onions and garlic, egg, allspice, nutmeg, black pepper, and salt to a large bowl.2.Add the ground beef and ground pork.3.Mix gently with clean hands until everything is just combined — don't overwork the meat.TIPOvermixing makes meatballs tough. Mix just until the ingredients are distributed evenly. - prep · ~8 min
Shape the meatballs.
Roll the mixture into 20-24 evenly sized meatballs, roughly 1.5 inches in diameter. Place them on a tray or plate.
TIPLightly wet your hands with cold water to prevent the meat mixture from sticking. - fry · ~15 min
Brown the meatballs in batches.
1.Heat the remaining 1 tablespoon of oil in a large skillet over medium-high heat.2.Add meatballs in a single layer, not overcrowding the pan. Brown on all sides, about 6-7 minutes per batch.3.Transfer browned meatballs to a plate. They will finish cooking in the gravy.TIPThe meatballs should reach an internal temperature of 160°F (71°C). Don't worry if they're not fully cooked yet — they'll simmer in the gravy. - saute · ~2 min
Start the gravy with a roux.
Reduce heat to medium. Melt the butter in the same skillet, scraping up the browned bits from the meatballs. Add the flour and whisk continuously for 1-2 minutes until the roux turns golden and smells nutty.
TIPThose browned bits (fond) are packed with flavor — make sure to scrape them all up. - simmer · ~5 min
Build the cream gravy.
1.Slowly pour in the water while whisking constantly to prevent lumps.2.Add the heavy cream and Worcestershire sauce. Continue whisking until the sauce is smooth.3.Bring the gravy to a gentle simmer and cook for 3-4 minutes until it starts to thicken. - simmer · ~10 min
Finish the meatballs in the gravy.
Return all the browned meatballs to the skillet with the gravy. Reduce the heat to low, cover, and simmer gently for 10 minutes, turning the meatballs halfway through. The meatballs will cook through and absorb the sauce flavors.
TIPEnsure the internal temperature of the meatballs reaches 160°F (71°C). - garnish
Garnish and serve hot.
Sprinkle with fresh chopped parsley. Serve immediately over mashed potatoes, egg noodles, or with lingonberry jam on the side.
What to keep in mind.
7 tips from the recipe — small details that make a real difference to the final dish.
- 1Use freshly grated nutmeg for a more aromatic and authentic Swedish meatball flavor.
- 2Chill the shaped meatballs for 15 minutes before browning to help them hold their shape.
- 3Do not overcrowd the pan when browning; cook in batches to achieve a deep golden crust.
- 4Reserve the pan drippings (fond) for the gravy — they are the flavor base for the sauce.
- 5Gently simmer the meatballs in the gravy, do not boil, to keep them tender and prevent the sauce from breaking.
- 6For a silky gravy, whisk the liquid in slowly and continuously when adding to the roux.
- 7Make ahead: prepare the meatballs and gravy separately, then combine and reheat gently just before serving.
Adapt it for your goals.
Low-carb / keto
Replace breadcrumbs with almond flour or crushed pork rinds, and use heavy cream or a keto-friendly thickener like xanthan gum in the gravy for a low-carb version.
gluten freeGluten-free
Substitute plain breadcrumbs with gluten-free breadcrumbs or rolled oats, and use a gluten-free all-purpose flour blend or cornstarch for the roux to make the dish celiac-friendly.
dairy freeDairy-free
Use unsweetened oat milk or almond milk in the panade, swap butter for dairy-free butter or oil in the roux, and replace heavy cream with full-fat coconut cream or a dairy-free cream alternative.
turkey meatballsTurkey meatballs
Replace the beef and pork with an equal weight of ground turkey meat for a leaner option; add a tablespoon of olive oil to the mixture for moisture.
spicy Swedish meatballsSpicy Swedish meatballs
Add 1/2 teaspoon of cayenne pepper or red pepper flakes to the meat mixture, and stir a teaspoon of Dijon mustard into the gravy for a subtle warmth.
Why this is on our healthy list.
Good Source of Protein
Each serving provides a substantial amount of protein from the combination of ground beef and pork, supporting muscle repair and satiety.
Rich in Iron
Ground beef is a natural source of heme iron, which is easily absorbed by the body and helps maintain healthy red blood cells.
Contains B Vitamins
Both beef and pork provide B vitamins (especially B12, niacin, and B6), which support energy metabolism and nervous system function.
Moderate in Calcium
The milk, heavy cream, and butter in the recipe contribute a modest amount of calcium, important for bone health.
Frequently asked questions
Yes, but using only beef may result in slightly denser meatballs. Adding a little extra milk or a tablespoon of oil can help keep them moist.



