These juicy Swedish meatballs are filled with flavor and smothered in a rich, savory gravy. Serve them over creamy mashed potatoes for the perfect comfort food meal.
In a sauté pan over medium heat, add butter. When melted and bubbly, add diced onions and cook until translucent and golden, about 5-7 minutes. Remove from heat.
In a large bowl, combine cooked onions, ground beef, salt, pepper, parsley, garlic powder, allspice, nutmeg, breadcrumbs, milk, and eggs. Mix until all ingredients are well incorporated. Shape into 1.5 inch balls (this recipe makes about 25 meatballs).
Return sauté pan to the stovetop and over medium heat, brown meatballs in two batches, turning occasionally to ensure even browning. Meatballs are ready to turn when they easily lift away from the pan. If they stick, they're not ready to turn yet. Browning should take about 10 minutes per batch. Remove meatballs from pan and set aside.
Gravy
Add butter to the pan along with drippings from meatballs. Once melted and bubbly, add flour and whisk to combine and create a paste. Cook for about 1 minute. Gradually whisk in beef stock and bring to a simmer. Add heavy cream, stir, and cook for about 2 minutes, or until thickened. Salt and pepper to taste.
Reduce heat to medium-low. Return meatballs to pan with gravy. Cook, uncovered for another 10-15 minutes (or until meatballs are cooked through to 160 degrees Fahrenheit in the center), stirring occasionally.
Serve over mashed potatoes or egg noodles. Optionally, sprinkle with chopped fresh parsley.
Notes
I recommend using 90/10 ground beef because it holds its shape better while cooking. Higher fat meats are more likely to crumble while cooking.
Leftover meatballs will keep for 3 to 4 days in a tightly sealed container in the refrigerator.
Cooked or raw meatballs can be frozen for up to 3 months in a tightly sealed, freezer-safe container.
Use a meat thermometer to ensure your meatballs turn out perfectly cooked and juicy, not dry.