This Swedish meatballs 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), buttered noodles, and roasted vegetables are excellent options. We also highly recommend a spoonful of lingonberry jam.
For the gravy, we add a few unconventional ingredients. Soy sauce seasons, mustard adds a little zing, and lemon zest brightens up the flavors of the dish.
1 pound (450 grams) ground beef
8 ounces (225 grams) ground pork
2 ounces (55 grams) fresh bread, crusts removed (about two slices)
1/4 cup (60 ml) milk
2 tablespoons (30 grams) butter, plus more as needed
1/2 cup (70 grams) 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 (24 grams) all-purpose flour
3 cups (710 ml) beef broth or use chicken broth
1/4 cup (60 ml) 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
In a small bowl, tear or chop the bread into small pieces 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 the mustard. Cook, stirring everything around the pan for 30 seconds. Transfer to a bowl to cool, and then wipe the skillet mostly clean with a paper towel so that it is ready for cooking the meatballs.
Combine the beef, pork, bread and milk mixture, and the egg in the bowl of a stand mixer fitted with the paddle attachment (or large food processor). When the onions are warm, not hot, add them to the bowl as well.
Evenly sprinkle the salt 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 one more time to move the mixture around a bit.)
Form the mixture into meatballs; we like using a medium cookie scoop that holds about 1 1/2 tablespoons — you should get around 30 meatballs. Move onto cooking or cover and refrigerate up to a day or freeze them (see notes section for our tips).
Heat the oven to 200 degrees Fahrenheit. Line a baking sheet with foil or parchment. (It’s likely you will cook the meatballs in batches. A warm oven helps to keep cooked meatballs hot while you finish cooking all of the meatballs.)
Melt half a tablespoon of butter in the pan used to cook the onions over medium-low heat. Add meatballs and cook, turning every few minutes, until brown on all sides and cooked through; 8 to 10 minutes. It’s unlikely all of 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 cooked meatballs to the baking sheet and place into 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 a little bit of butter. You will need about three tablespoons of fat in the pan.
Decrease the heat to low then 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 continue to 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.