Swedish Meatballs with Cream Gravy
Photo by Dainé Zeferino on Pexels
MeatballsSwedishMedium

Swedish Meatballs with Cream Gravy

From the MyKitchenBank Kitchen

Tender beef-and-pork meatballs scented with allspice and nutmeg, pan-fried until deeply browned, then simmered in a silky beef and cream gravy. Serve with mashed potatoes, lingonberry jam, and quick pickled cucumbers.

Prep
25 min
Cook
40 min
Wait
25 min
Total
1 hr 30 min
Makes
About 36 meatballs (6 servings) with gravy

Steps

Before you start
  • Read the recipe through; the breadcrumb mixture needs 10 minutes to soak before mixing.
  • Use meat that is cold from the fridge so the mixture is easy to shape and the meatballs hold together.
  • Have a plate or rimmed baking sheet ready for the browned meatballs, and a small bowl of water for wetting your hands while rolling.
  • Use a 12-inch (30 cm) skillet with deep sides and brown in two batches so the meatballs brown instead of steaming.
  • Ground beef and ground pork must both reach 160°F (71°C) in the center; keep an instant-read thermometer handy.
  1. Soak the breadcrumbs

    • In a small bowl, stir together the breadcrumbs and milk.
    • Let stand 10 minutes, then mash with a fork into a thick paste.
    + Show details

    Ready when: Mixture looks like a thick, moist paste with no dry crumbs

  2. Mix the meatballs

    • In a large bowl, combine the soaked breadcrumbs, grated onion, beef, pork, egg, salt, allspice, nutmeg, and pepper.
    • Mix gently with your hands for about 1 minute, just until evenly combined and slightly sticky.
    + Show details

    Ready when: Spices are evenly distributed and no streaks of egg remain

    Tip: Overmixing makes meatballs dense and rubbery.

  3. Chill the mixture

    • Cover the bowl and refrigerate for 15 minutes.
    • This firms the fat so the meatballs are easier to roll and keep their shape in the pan.
    • Meanwhile, line a baking sheet with parchment and set a small bowl of water nearby for your hands.
    + Show details

    Ready when: Mixture feels cold and firm when pressed

  4. Roll the meatballs

    • With wet hands, roll the mixture into about 36 balls, each about 1½ inches (4 cm) across, or roughly 1½ tablespoons (about 33 g) each.
    • Place on the baking sheet.
    + Show details

    Ready when: Balls are smooth and uniform in size

    Tip: Uniform size ensures even cooking.

  5. Brown in batches

    • Heat the oil and 1 tablespoon of the butter in the 12-inch skillet over medium heat until the butter foams.
    • Add half the meatballs in a single layer with space between them.
    • Cook 6 to 8 minutes, turning every minute or so, until browned on all sides.
    • Transfer to a clean plate and repeat with the remaining meatballs.
    • They will not be cooked through yet.
    • Leave about 2 tablespoons of drippings in the pan and pour off any excess.
    + Show details

    Ready when: Meatballs are deep golden brown on all sides

    Tip: If the browned bits in the pan turn black, lower the heat and wipe out the pan before continuing.

  6. Make the roux

    • Reduce the heat to medium-low.
    • Add the remaining 2 tablespoons butter and let it melt.
    • Sprinkle in the flour and whisk constantly for 1½ to 2 minutes, scraping up browned bits, until the roux smells nutty and turns light tan.
    + Show details

    Ready when: Roux is light tan, bubbling, and smells toasty

  7. Whisk in the broth

    • Pour in the broth about ½ cup (120 ml) at a time, whisking smooth after each addition.
    • Whisk in the soy sauce and Dijon.
    • Bring to a gentle simmer over medium heat.
    + Show details

    Ready when: Gravy is smooth and begins to thicken slightly

    Tip: Adding the broth gradually prevents lumps.

  8. Add cream and meatballs

    • Whisk in the cream.
    • Return the meatballs and any juices from the plate to the skillet, spooning gravy over them.
    • Reduce the heat to low, cover, and simmer gently for 12 to 15 minutes, stirring once or twice.
    • Check the center of a few of the largest meatballs with an instant-read thermometer: both the beef and the pork must reach 160°F (71°C).
    + Show details

    Ready when: Meatballs register 160°F (71°C) in the center, no pink remains, and gravy coats a spoon, leaving a clear line when you draw a finger through it

    Tip: Keep it at a gentle simmer; a hard boil can make the cream gravy split.

  9. Season and serve

    • Taste the gravy and add a pinch of salt or pepper if needed.
    • If too thick, stir in a splash of broth or water.
    • Sprinkle with parsley and serve hot with lingonberry jam on the side.
    + Show details

    Ready when: Gravy is glossy, pourable, and well seasoned

Good to know

Tips
  • Grate the onion finely so it melts into the meatballs and adds moisture without crunchy bits.
  • Fry a tiny test patty first to check seasoning before rolling the whole batch.
  • Allspice is the signature flavor; use fresh ground spice for the best aroma.
  • Serve with mashed potatoes and quick pickled cucumbers to cut through the rich gravy.
Make ahead

Roll the meatballs up to 1 day ahead, cover, and refrigerate on the baking sheet. Or fully cook and refrigerate in the gravy for up to 3 days, then reheat gently.

Storage & reheating

Room temperature: no more than 2 hours. Refrigerator: up to 4 days in an airtight container. Freezer: up to 3 months; thaw overnight in the fridge. Reheat gently in a covered skillet over low heat with a splash of broth or water until steaming and 165°F (74°C) in the center.

Substitutions
  • plain dry breadcrumbs → panko breadcrumbs. Use the same weight; soak a few extra minutes.
  • heavy cream → half-and-half. Gravy will be thinner; simmer 2–3 extra minutes uncovered to thicken.
  • ground pork → ground veal or more ground beef. Veal is traditional; all-beef will be slightly less tender. Cook to 160°F (71°C) either way.
  • lingonberry jam → cranberry sauce. Choose a not-too-sweet, whole-berry style.

More meatballs

See all →

Find more like this

Meal
Dinner
Main ingredient
Ground BeefGround Pork
Method
Stovetop

Reviews (0)