I finally perfected Homemade Swedish Meatballs thanks to a tiny pantry tweak in the rich sauce that has readers asking how I did it.

I grew up thinking Swedish meatballs were this fancy store thing, but making Classic Swedish Meatballs at home changed everything. I mix ground beef and ground pork into little imperfect balls, they brown up and then soak in a simple, rich sauce that somehow tastes way better than IKEA.
I always sneak a splash of heavy cream into the gravy for silkiness, and somehow it turns ordinary into, well, almost dangerous. Youll want to know why these are different.
I promise theyre easy, a little messy, and worth every minute you spend. Prepare to get hooked.
Ingredients

- Ground beef and pork: Rich in protein, gives meaty flavor and juicy texture, adds fat for richness.
- Yellow onion: Adds sweet savory notes when browned provides fiber and subtle moisture.
- Breadcrumbs or panko: Soak up milk bind meatballs add light carbs and pleasant crunch sometimes.
- Milk and egg: Milk softens crumbs egg binds both add protein and tender crumb.
- Butter and neutral oil: Butter browns for nutty flavor oil raises smoke point for crisp exterior.
- Beef stock: Forms savory gravy base supplies umami salts and beefy depth.
- Heavy cream: Makes gravy silky adds fat and mild sweetness smooth mouthfeel.
- Worcestershire and Dijon: Add tang umami and subtle acidity lift flavors without sweetness.
- Fresh parsley: Fresh herb brightness small vitamin boost cuts richness with a green note.
Ingredient Quantities
- 1/2 lb (8 oz) ground beef and 1/2 lb (8 oz) ground pork
- 1 small yellow onion, finely chopped (about 3/4 cup)
- 1/2 cup plain breadcrumbs or panko
- 1/4 cup whole milk
- 1 large egg, lightly beaten
- 1 tsp kosher salt
- 1/2 tsp freshly ground black pepper
- 1/2 tsp ground allspice
- 1/4 tsp ground nutmeg
- 2 tbsp unsalted butter plus 1 tbsp neutral oil for frying
- 2 tbsp unsalted butter for the gravy
- 2 tbsp all purpose flour
- 2 cups beef stock or broth
- 1/2 cup heavy cream
- 1 tsp Worcestershire sauce
- 1 tsp Dijon mustard (optional)
- fresh parsley, chopped for garnish (optional)
How to Make this
1. Finely chop the onion and sauté it in 2 tablespoons unsalted butter over medium heat until soft and translucent, about 5 minutes; let it cool a bit so it does not cook the egg later.
2. In a small bowl stir the breadcrumbs or panko with 1/4 cup whole milk and let soak 5 minutes until mushy.
3. In a large bowl combine 1/2 lb ground beef, 1/2 lb ground pork, the soaked breadcrumbs, the cooled onion, 1 lightly beaten egg, 1 teaspoon kosher salt, 1/2 teaspoon black pepper, 1/2 teaspoon ground allspice and 1/4 teaspoon ground nutmeg. Mix gently with your hands or a fork until just combined, dont overwork it or the meatballs get tough. Chill 10 minutes if you have time it helps them hold together.
4. Shape the mixture into small meatballs about 1 to 1 1/4 inch each, use a tablespoon or small cookie scoop for even sizes. Wet your hands slightly if the mix sticks.
5. Heat 1 tablespoon neutral oil plus 2 tablespoons unsalted butter in a large skillet over medium heat. Brown meatballs in batches so they dont crowd the pan, turning often so all sides get color, about 7 to 10 minutes per batch. Transfer browned meatballs to a plate and keep warm. If you have lots of fat left wipe some out but leave the fond.
6. For the gravy melt 2 tablespoons unsalted butter in the same skillet over medium heat, sprinkle in 2 tablespoons all purpose flour and cook, stirring, 1 to 2 minutes until it smells nutty and the raw flour taste is gone.
7. Slowly whisk in 2 cups beef stock, scraping up browned bits from the pan, then stir in 1/2 cup heavy cream, 1 teaspoon Worcestershire sauce and 1 teaspoon Dijon mustard if using. Simmer until the sauce thickens and is silky, 3 to 5 minutes. Taste and adjust salt and pepper.
8. Return the meatballs to the sauce and simmer gently 4 to 6 minutes so they finish cooking and soak up flavor. The internal temp should reach 160 F or cook until no pink remains. If sauce gets too thick add a splash more stock, if too thin simmer a bit longer.
9. Serve over mashed potatoes or buttered egg noodles, spoon lots of sauce over the top and sprinkle with chopped fresh parsley if you want. Leftovers keep well chilled for a couple days and actually taste better the next day.
Equipment Needed
1. Sharp chef’s knife (for finely chopping the onion)
2. Cutting board
3. Small sauté pan (8 inch) to cook the onion
4. Large heavy skillet or frying pan (12 inch) for browning meatballs and making the gravy
5. Mixing bowls — one large for the meat, one small for soaking the breadcrumbs
6. Measuring cups and spoons
7. Tablespoon or small cookie scoop for portioning the meatballs, plus a plate or baking sheet to hold them
8. Whisk and a wooden spoon or heatproof spatula for the gravy and stirring
9. Tongs and an instant-read meat thermometer to turn the meatballs and check they reach 160 F
Note: wet your hands slightly when shaping so the mix dont stick to you.
FAQ
Swedish Meatballs Recipe Substitutions and Variations
- Ground beef + pork: swap for 1 lb ground turkey or chicken if you want it lighter, just add 1 tbsp oil since white meat is leaner and can dry out; or use 1 lb ground lamb for a richer, slightly gamier flavor.
- Plain breadcrumbs or panko: use crushed saltines, Ritz crackers, or rolled oats (same volume) for texture; for gluten free, try almond flour or store bought GF crumbs.
- Whole milk: replace with unsweetened oat or soy milk in equal amount for a dairy free version, or use 1/4 cup chicken broth plus 1 tbsp melted butter if you want more savory depth.
- Heavy cream (for gravy): use half and half plus 1 tbsp butter, or stir in 2 to 3 tbsp sour cream or Greek yogurt off the heat for tangy creaminess, or use evaporated milk for a lower fat option.
Pro Tips
– Brown in true batches, dont crowd the pan. You want good browning for flavor, not steaming. Leave the fond in the pan, wipe out just enough excess fat so the gravy wont be greasy, then deglaze with the stock. If you like, keep finished meatballs in a low oven (200 F) to stay warm while you finish everything.
– Chill the mixed meat for at least 10 minutes before shaping. It firms up the fat so the meatballs hold together and you get neater rounds. Wet your hands or oil them lightly if the mix sticks, and use a small scoop for even cooking.
– For texture control with the breadcrumbs: use panko for lighter, fluffier balls, regular breadcrumbs for denser. Let them soak in milk until mushy. If you want firmer meatballs squeeze a bit of the excess milk out, for juicier ones leave it in.
– Always test-season the mix. Fry a tiny pinch or small patty and taste it for salt, pepper and spice balance. Add a splash more Worcestershire or mustard if it tastes flat. Remember the gravy will add flavor too so dont oversalt.
– Keep the gravy silky: cook the flour briefly so it loses its raw taste, then whisk in stock slowly and simmer gently. If it tightens up too much add a splash more stock or cream, if its too thin simmer a little longer. A cornstarch slurry works as a quick rescue if you need to thicken fast.
Swedish Meatballs Recipe
My favorite Swedish Meatballs Recipe
Equipment Needed:
1. Sharp chef’s knife (for finely chopping the onion)
2. Cutting board
3. Small sauté pan (8 inch) to cook the onion
4. Large heavy skillet or frying pan (12 inch) for browning meatballs and making the gravy
5. Mixing bowls — one large for the meat, one small for soaking the breadcrumbs
6. Measuring cups and spoons
7. Tablespoon or small cookie scoop for portioning the meatballs, plus a plate or baking sheet to hold them
8. Whisk and a wooden spoon or heatproof spatula for the gravy and stirring
9. Tongs and an instant-read meat thermometer to turn the meatballs and check they reach 160 F
Note: wet your hands slightly when shaping so the mix dont stick to you.
Ingredients:
- 1/2 lb (8 oz) ground beef and 1/2 lb (8 oz) ground pork
- 1 small yellow onion, finely chopped (about 3/4 cup)
- 1/2 cup plain breadcrumbs or panko
- 1/4 cup whole milk
- 1 large egg, lightly beaten
- 1 tsp kosher salt
- 1/2 tsp freshly ground black pepper
- 1/2 tsp ground allspice
- 1/4 tsp ground nutmeg
- 2 tbsp unsalted butter plus 1 tbsp neutral oil for frying
- 2 tbsp unsalted butter for the gravy
- 2 tbsp all purpose flour
- 2 cups beef stock or broth
- 1/2 cup heavy cream
- 1 tsp Worcestershire sauce
- 1 tsp Dijon mustard (optional)
- fresh parsley, chopped for garnish (optional)
Instructions:
1. Finely chop the onion and sauté it in 2 tablespoons unsalted butter over medium heat until soft and translucent, about 5 minutes; let it cool a bit so it does not cook the egg later.
2. In a small bowl stir the breadcrumbs or panko with 1/4 cup whole milk and let soak 5 minutes until mushy.
3. In a large bowl combine 1/2 lb ground beef, 1/2 lb ground pork, the soaked breadcrumbs, the cooled onion, 1 lightly beaten egg, 1 teaspoon kosher salt, 1/2 teaspoon black pepper, 1/2 teaspoon ground allspice and 1/4 teaspoon ground nutmeg. Mix gently with your hands or a fork until just combined, dont overwork it or the meatballs get tough. Chill 10 minutes if you have time it helps them hold together.
4. Shape the mixture into small meatballs about 1 to 1 1/4 inch each, use a tablespoon or small cookie scoop for even sizes. Wet your hands slightly if the mix sticks.
5. Heat 1 tablespoon neutral oil plus 2 tablespoons unsalted butter in a large skillet over medium heat. Brown meatballs in batches so they dont crowd the pan, turning often so all sides get color, about 7 to 10 minutes per batch. Transfer browned meatballs to a plate and keep warm. If you have lots of fat left wipe some out but leave the fond.
6. For the gravy melt 2 tablespoons unsalted butter in the same skillet over medium heat, sprinkle in 2 tablespoons all purpose flour and cook, stirring, 1 to 2 minutes until it smells nutty and the raw flour taste is gone.
7. Slowly whisk in 2 cups beef stock, scraping up browned bits from the pan, then stir in 1/2 cup heavy cream, 1 teaspoon Worcestershire sauce and 1 teaspoon Dijon mustard if using. Simmer until the sauce thickens and is silky, 3 to 5 minutes. Taste and adjust salt and pepper.
8. Return the meatballs to the sauce and simmer gently 4 to 6 minutes so they finish cooking and soak up flavor. The internal temp should reach 160 F or cook until no pink remains. If sauce gets too thick add a splash more stock, if too thin simmer a bit longer.
9. Serve over mashed potatoes or buttered egg noodles, spoon lots of sauce over the top and sprinkle with chopped fresh parsley if you want. Leftovers keep well chilled for a couple days and actually taste better the next day.















