This Swedish meatball recipe makes juicy and flavorful meatballs with a creamy, rich, and crave-worthy sauce. If you prefer, you can serve the meatballs without the gravy. We love serving these with mashed potatoes (or mashed cauliflower). We also highly recommend a spoonful of lingonberry jam. For the gravy, I love soy sauce and a bit of lemon. They are not authentic, but truly make this gravy delicious.
1 pound (450g) ground beef
8 ounces (225g) ground pork
2 ounces (55g) fresh bread, crusts removed (2 to 3 slices)
1/4 cup (60ml) milk
2 tablespoons (30g) butter, plus more as needed
1/2 cup (70g) finely chopped onion
1/2 teaspoon fresh ground black pepper
1/4 teaspoon ground allspice
1/4 teaspoon garlic powder
1/8 teaspoon cayenne pepper
Pinch fresh ground nutmeg
1/2 teaspoon Dijon mustard or a pinch of dry mustard powder
1 large egg
1/2 teaspoon fine sea salt
Butter, as needed
3 tablespoons (24g) all-purpose flour
3 cups (710ml) beef broth or chicken broth
1/4 cup (60ml) heavy cream
1 teaspoon light soy sauce
1 teaspoon Dijon mustard or a pinch of dry mustard powder
1/2 teaspoon lemon zest
Handful fresh parsley, chopped
Tear or chop the bread into small pieces in a small bowl, then cover with the milk. Set aside.
Melt one tablespoon of butter in a wide skillet. Add the onions and cook until soft but not brown, 3 to 4 minutes. Stir in the black pepper, allspice, garlic powder, cayenne pepper, nutmeg, and mustard. Cook, stirring everything around the pan for 30 seconds. Transfer to a bowl to cool, then wipe the skillet mostly clean with a paper towel, ready to cook the meatballs.
Combine the beef, pork, egg, and the bread and milk mixture in the bowl of a stand mixer fitted with the paddle attachment (or use a large food processor). When the onions are warm but not hot, add them to the bowl as well.
Sprinkle the salt evenly over the top of the mixture, then beat for about 30 seconds. Scrape the sides of the bowl, then beat another 30 seconds to a minute until the mixture looks very well blended. (If you are using a food processor, you may need to stop the processor to move the mixture around a bit.)
Form the mixture into meatballs. We like using a medium cookie scoop, which holds about 1 1/2 tablespoons (you should get around 30 meatballs).
Heat the oven to 200°F. Line a baking sheet with foil or parchment. (You will likely cook the meatballs in batches. A warm oven helps keep the meatballs hot while you finish cooking them.)
Melt half a tablespoon of butter in the pan to cook the onions over medium-low heat.
Add the meatballs and cook, turning every few minutes, until brown on all sides and cooked in the middle, 8 to 10 minutes. It’s unlikely all the meatballs will fit, so you will need to do this in batches (or use two pans). Add more butter to the pan as needed.
Transfer the cooked meatballs to the baking sheet and place them in the warm oven.
After cooking the meatballs, make the gravy in the same pan. Depending on how much fat is left in the pan after cooking the meatballs, you may need to remove some or add some butter. You will need about three tablespoons of fat in the pan.
Decrease the heat to low, scatter the flour over the fat in the pan, and whisk until medium blonde in color, about 2 minutes.
While whisking, slowly add the broth. Continue to whisk until the gravy begins to thicken.
Add the cream and cook until the sauce thickens enough to coat the meatballs, another minute or so.
Whisk in the soy sauce, mustard, and lemon zest. Taste, then adjust with salt and pepper, as needed. Remove the meatballs from the oven and add to the gravy. Serve with parsley scattered on top.