Heat 1 tablespoon olive oil in a large skillet over med-high heat. Add the onions to the pan and cook until softened. Allow to cool.
In a large bowl, mix the ground beef, egg, bread crumbs, milk, onion, salt, pepper, nutmeg and allspice until combined. Form the mixture into 1 inch balls.
Brown the meatballs until they're golden on all sides, about 7-10 minutes. They don't need to be fully cooked yet—they'll finish cooking when simmered in the gravy. Using a slotted spoon, transfer the meatballs to a platter. Drain off all but 2 tablespoons of fat from the skillet and return to the heat.
Add the flour to the pan and cook for 1–2 minutes before adding the broth to eliminate any raw flour taste. Slowly whisk in the beef stock until smooth, then stir in the cream. Simmer gently until the gravy is thick enough to coat the back of a spoon.
Return the meatballs to the skillet and simmer until heated through and the internal temperature reaches 160°F.
Serve immediately over egg noodles, rice or mashed potatoes.
Video
Notes
A combination of ground beef and ground pork creates a more traditional Swedish meatball.
Don't overmix the meatball mixture or the meatballs can become tough.
Brown the meatballs well for maximum flavor.
The meatballs are done when they reach an internal temperature of 160°F.
Store leftovers in the refrigerator for up to 4 days or freeze for up to 3 months.