Swedish Meatballs with Creamy Gravy

Updated November 4, 2026

Total time
1 hr 5 min
prep 40 min · cook 25 min
Serves
4
portions as written
Safe temperature (USDA)
160°F / 71°C
check the thickest piece

Jump to recipe

Swedish Meatballs with Creamy Gravy

Swedish meatballs, or köttbullar, are small, gently spiced beef-and-pork meatballs served with a creamy pan gravy, often alongside potatoes and tart lingonberry preserves. This home-style version uses allspice and nutmeg for warmth, while milk-soaked breadcrumbs help keep the meatballs tender and the browned pan bits give the gravy deep, savory flavor.

Ingredients

  • ½ cup (55 g) plain breadcrumbs
  • ⅓ cup (80 ml) whole milk
  • ½ cup (75 g) finely grated yellow onion
  • 1 lb (450 g) ground beef, preferably not extra-lean
  • 8 oz (225 g) ground pork
  • 1 large egg (about 50 g without shell)
  • 1 tsp (6 g) fine salt, divided
  • ¼ tsp (0.5 g) ground black pepper
  • ¼ tsp (0.5 g) ground allspice
  • ⅛ tsp (0.25 g) ground nutmeg
  • 2 tbsp (28 g) unsalted butter, for browning the meatballs
  • 1 tbsp (15 ml) neutral cooking oil
  • 3 tbsp (42 g) unsalted butter, for the gravy
  • 3 tbsp (24 g) all-purpose flour
  • 2½ cups (600 ml) low-sodium beef broth, or beef stock
  • ½ cup (120 ml) heavy cream
  • 1 tsp (5 g) Dijon mustard
  • 1 tsp (5 ml) Worcestershire sauce
  • ⅛ tsp (0.25 g) ground black pepper, plus more to taste
  • ¼ tsp (1.5 g) fine salt for the gravy, then more to taste
  • 1 tbsp (4 g) chopped fresh parsley, optional

Instructions

  1. In a medium bowl, stir the breadcrumbs and milk together. Leave them for 5 minutes so the crumbs absorb the liquid and soften. Meanwhile, grate the onion on the large holes of a box grater; finely grated onion blends into the mixture more evenly than chopped pieces and releases enough moisture to flavor the meatballs.
  2. Add the ground beef, ground pork, egg, ¾ teaspoon of the salt, pepper, allspice, and nutmeg to the bowl. Mix gently with clean hands or a fork just until the ingredients are evenly combined. Avoid squeezing or kneading the mixture for a long time, which can make cooked meatballs firm. Shape it into about 20 small balls, each roughly 1½ inches (4 cm) across. Set them on a plate and refrigerate for 15 minutes to help them hold their shape as they brown.
  3. Set a wide, heavy skillet over medium heat. Add the 2 tablespoons butter and the oil. When the butter has melted and looks foamy, arrange the meatballs in a single layer with a little room between them. Brown them in batches if the skillet is crowded; turning them every couple of minutes helps create an even crust. Cook for about 10–12 minutes total, until browned on several sides. They do not need to be fully cooked yet. Transfer them to a clean plate; keep any browned bits and fat in the pan.
  4. Reduce the heat to medium-low and add the 3 tablespoons butter for the gravy. Once melted, whisk in the flour. Cook the roux for about 2 minutes, whisking often, until it smells lightly toasted but has not turned dark brown. Slowly pour in the beef broth while whisking, scraping the skillet to loosen the browned bits. Bring the sauce to a gentle simmer and whisk for about 4 minutes, until it begins to thicken.
  5. Whisk in the cream, Dijon mustard, Worcestershire sauce, remaining ¼ teaspoon salt, and ⅛ teaspoon pepper. Return the meatballs and any juices on the plate to the skillet. Gently turn them to coat, then simmer uncovered for about 7 minutes, stirring carefully once or twice so the gravy does not stick. Check the center of a larger meatball with a food thermometer: the USDA FSIS safe minimum temperature for ground meat is 160°F (71°C). If needed, continue simmering and check again. Taste the gravy and adjust the salt and pepper. Sprinkle with parsley if using, then serve hot.

Tips

  • Keep the mixing light. Combining the meat just until it comes together is one of the simplest ways to avoid dense meatballs. If you prefer to mix by hand, use a gentle folding motion rather than pressing the mixture into a paste. The brief chill firms the shaped meat, but do not leave raw meatballs at room temperature while preparing other components.
  • Choose a practical pork substitute. The beef-and-pork combination adds flavor and a tender texture. If you do not eat pork, use an equal amount of ground beef or ground turkey. All-beef meatballs may be a little firmer and less rich; turkey is leaner, so take care not to overcook it and still verify the required ground-meat temperature.
  • Adjust the gravy slowly. Low-sodium broth gives you more control over seasoning, especially because Worcestershire sauce and the browned pan juices are already savory. If the sauce gets thicker than you like, whisk in warm broth a tablespoon or two at a time. If it seems thin, let it simmer gently for another minute or two before adding more flour.
  • Do not crowd the skillet. Meatballs need contact with the hot pan to brown. If they touch or release liquid into an overcrowded pan, they are more likely to steam. Brown them in two batches if necessary, and return all of them to the gravy for the final simmer.

Serving Suggestions

For a familiar Swedish-style plate, serve the meatballs and plenty of gravy with boiled or mashed potatoes, a spoonful of lingonberry preserves, and a crisp cucumber salad. Lingonberries are tart and slightly sweet, which balances the creamy sauce. If they are hard to find, cranberry preserves or a tart red-currant jelly make workable substitutes; both are generally sweeter and less sharp, so offer a modest spoonful rather than mixing them into the gravy.

Egg noodles, buttered wide noodles, or plain rice are convenient alternatives when potatoes are not on the menu. Spoon the sauce over the starch so it catches the gravy, and add a green vegetable such as steamed green beans, peas, or sautéed cabbage for freshness. A simple salad with vinegar dressing also works well beside the rich sauce. For a more casual meal, serve the meatballs on small plates with toothpicks and keep the gravy warm nearby for dipping, making sure the meatballs remain hot.

For a balanced serving, place several meatballs on each plate and include enough sauce to coat them without drowning the other components. If serving family-style, keep the meatballs in their skillet or transfer them to a warmed serving dish after they reach a safe temperature. A small bowl of lingonberry preserves on the table lets everyone choose how much sweet-tart contrast they want.

Variations

Use a single kind of meat. All-beef meatballs are a convenient option and work with the same seasoning and method. Their texture may be slightly less delicate than the beef-and-pork version. Ground turkey can also be used, though it has a milder flavor and is more likely to dry if cooked longer than necessary. Check the center with a thermometer and do not rely on color alone.

Make the seasoning more restrained or more pronounced. Allspice and nutmeg give the recipe its warm, recognizable profile, but their strength varies by brand and freshness. For a subtler flavor, use half the listed amount of each; for a more aromatic batch, increase the allspice to ⅜ teaspoon. Do not add a large amount of nutmeg at once, since it can quickly dominate the meat and cream.

Make the sauce without cream. For a lighter-tasting, less creamy gravy, replace the heavy cream with ½ cup (120 ml) whole milk. The sauce will be thinner and less rich, so simmer it gently and avoid boiling it hard. For a dairy-free version, use an unsweetened, unflavored plant-based milk and a suitable dairy-free butter substitute; the flavor and thickening may differ, so check the sauce and adjust its consistency gradually.

Add mushrooms. Slice 8 oz (225 g) mushrooms and brown them in the skillet after cooking the meatballs, adding a little extra oil if the pan looks dry. Transfer them to a plate, make the gravy as directed, then return the mushrooms with the meatballs. They make the finished dish more savory and substantial, though they will add moisture, so allow the gravy to simmer until it reaches the thickness you like.

Storage and Reheating

Refrigerate leftovers within 2 hours of cooking, using a shallow, covered container so they cool promptly. The meatballs and gravy keep for 3–4 days in the refrigerator. Store them together to help the meatballs stay moist. For longer storage, freeze cooled portions in a freezer-safe container for up to 2–3 months for best quality. Thaw frozen portions overnight in the refrigerator rather than on the counter; the cream sauce may separate slightly after freezing, but gentle stirring as it warms can bring it back together.

Reheat a portion in a covered saucepan over low to medium-low heat, stirring gently and adding a splash of broth or water if the gravy has thickened. Heat until the center of the meatballs and the sauce reach 165°F (74°C), the USDA FSIS recommended temperature for reheated leftovers. You can also microwave a covered portion in short intervals, stirring between intervals and checking the temperature in a meatball near the center. Avoid a hard boil, which can toughen the meat and make a cream-based sauce look grainy.

Frequently Asked Questions

Can I make the meatballs ahead? Yes. Shape them, cover the plate or container, and refrigerate them for up to 24 hours before cooking. Keep raw meat refrigerated and cook the meatballs as directed, checking that they reach 160°F (71°C) in the center. You can also cook the full dish a day ahead, refrigerate it promptly, and reheat it gently to 165°F (74°C) before serving.

Why are my meatballs falling apart? The mixture may be too wet, insufficiently mixed, or very warm when it reaches the pan. The soaked breadcrumbs and egg help bind the ingredients, and the 15-minute chill firms the shape. Turn the meatballs gently with a thin spatula or tongs, and let one side brown before trying to move them. If the mixture seems unusually loose, chill it a little longer rather than adding a large amount of dry breadcrumbs, which can make the cooked texture heavy.

Can I bake the meatballs instead of browning them on the stove? Yes. Arrange them on a parchment-lined baking sheet with space between each one and bake at 400°F (200°C) until browned and cooked through, checking the largest meatball for 160°F (71°C). The exact time depends on their size and your oven, so use a thermometer rather than relying only on minutes. The gravy will have fewer browned bits to build flavor; make its roux in a skillet and add the baked meatballs and any tray juices to the sauce.

What can I use instead of lingonberry preserves? Cranberry preserves or red-currant jelly are convenient substitutes. Their sweetness and tartness vary by product, and cranberry is often less tart than lingonberry. Serve the substitute on the side so diners can adjust their own plates. The preserves are a traditional-style accompaniment, not an essential ingredient in the meatball mixture or gravy.

How do I know when the meatballs are done? Check a large meatball by inserting an instant-read food thermometer into its center without touching the skillet. Ground beef and pork should reach 160°F (71°C), the USDA FSIS safe minimum for ground meat. If the reading is lower, continue simmering the meatballs in the sauce and check again. A brown exterior alone does not confirm that the center has reached a safe temperature.

Related

More recipes to cook

Safety notes: safe minimum internal temperatures from USDA FSIS; raw and undercooked fish guidance from the U.S. FDA. Food safety notes

Spotted an error? Tell us and we will correct it (corrections policy).