Swedish Meatballs Over Rice with Creamy Gravy

Updated November 4, 2026

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

Jump to recipe

Swedish Meatballs Over Rice with Creamy Gravy

Swedish meatballs over rice pairs tender, warmly spiced beef-and-pork meatballs with a creamy pan gravy and fluffy rice. It’s a comforting Swedish-style dinner adapted with rice instead of the more familiar potato sides, and the rice is especially good at catching every bit of sauce.

Ingredients

  • 1½ cups (280 g) long-grain white rice
  • 2¼ cups (530 ml) water
  • ½ teaspoon (3 g) fine salt, for the rice
  • ½ cup (55 g) plain fine breadcrumbs
  • ¼ cup (60 ml) whole milk
  • ½ cup (75 g) finely grated yellow onion, divided
  • 1 large egg (about 50 g, without shell)
  • ½ pound (225 g) ground beef, preferably 80–85% lean
  • ½ pound (225 g) ground pork
  • ¾ teaspoon (4 g) fine salt, for the meatballs
  • ¼ teaspoon (0.5 g) ground black pepper
  • ¼ teaspoon (0.5 g) ground allspice
  • ⅛ teaspoon (0.25 g) ground nutmeg
  • 1 tablespoon (15 ml) neutral oil
  • 2 tablespoons (28 g) unsalted butter
  • 2 tablespoons (16 g) all-purpose flour
  • 2 cups (475 ml) low-sodium beef broth
  • ½ cup (120 ml) heavy cream
  • 1 teaspoon (5 ml) Worcestershire sauce
  • 1 teaspoon (5 g) Dijon mustard
  • Chopped fresh parsley, 1 tablespoon (4 g), for serving (optional)

Instructions

  1. Prepare the meatball mixture and equipment. Set a large skillet, a saucepan with a tight-fitting lid, and a rimmed plate near the stove. In a medium bowl, stir the breadcrumbs and milk together and let them sit for 2 minutes so the crumbs absorb the liquid. Add the egg, ¼ cup (about 38 g) of the grated onion, beef, pork, ¾ teaspoon salt, pepper, allspice, and nutmeg. Mix gently with your hands or a fork just until evenly combined. Overmixing can make the meatballs firm. Shape the mixture into about 20 meatballs, each roughly 1½ inches (4 cm) wide. Wash your hands and any surfaces that touched raw meat.
  2. Start the rice. Rinse the rice in a fine-mesh strainer until the water runs mostly clear; this removes some surface starch and helps the grains cook separately. Put it in the saucepan with 2¼ cups water and ½ teaspoon salt. Bring to a boil over medium-high heat, stir once, cover, and turn the heat to low. Cook for 15 minutes without lifting the lid, then remove from the heat and leave covered. The rice will finish steaming while you make the meatballs and gravy.
  3. Brown the meatballs. While the rice cooks, heat the oil in the skillet over medium to medium-high heat. Arrange the meatballs in one layer, working in batches if the pan is crowded. Brown them for about 6–8 minutes total, turning carefully so several sides develop a deep golden crust. They do not need to be cooked through yet. Transfer them to the plate. If the pan has dark, burnt bits, wipe those out; leave the browned fond and a thin coating of fat behind.
  4. Make the gravy. Reduce the heat to medium-low and melt the butter in the same skillet. Add the remaining ¼ cup grated onion and cook for about 2 minutes, stirring, until softened. Sprinkle in the flour and stir continuously for 1 minute to cook away its raw taste. Gradually whisk in the broth, scraping up the browned bits from the pan. Add the cream, Worcestershire sauce, and Dijon. Bring the mixture to a gentle simmer, whisking until smooth and just beginning to thicken, about 2 minutes. Keep the heat moderate; a hard boil can make a cream gravy less smooth.
  5. Finish cooking the meatballs and serve. Return the meatballs and any juices on the plate to the skillet. Turn them gently in the gravy, cover loosely, and simmer over low heat for about 8–10 minutes, turning once. Check the center of a large meatball with an instant-read food thermometer: the USDA FSIS safe minimum for ground beef and pork is 160°F (71°C). If they have not reached that temperature, continue simmering and check again. Fluff the rice with a fork, spoon it into shallow bowls, and top with meatballs and gravy. Sprinkle with parsley if you like.

Tips

Use a light touch when combining the meat mixture. A few visible flecks of onion or breadcrumb are fine; kneading until the mixture feels smooth can compress the meat and produce dense meatballs. If shaping is awkward, dampen your hands with cool water, then roll gently rather than pressing hard.

Choose ground beef that is not extremely lean. The pork and moderate-fat beef help keep the centers moist, while the breadcrumbs and milk hold onto some of the juices. If using only lean beef, the result may be a little less tender, so avoid extending the browning time just to make the outside darker.

Low-sodium broth makes it easier to control the salt, especially because Worcestershire and mustard add their own seasoning. Taste the finished gravy before serving and adjust with a pinch of salt or pepper if needed. For a thinner sauce, whisk in a splash of broth; for a thicker one, let it simmer gently for another minute or two.

Keep the gravy at a gentle simmer once the meatballs go back into the pan. Boiling vigorously can break them apart and reduce the sauce too quickly. A wide skillet gives the meatballs room to brown and lets the gravy thicken evenly; if yours is small, brown in batches instead of crowding the pan.

Serving Suggestions

Spoon the gravy generously over the rice so it seasons the grains as well as the meatballs. A crisp, lightly dressed green salad, steamed green beans, or roasted carrots adds freshness and a contrasting texture. Lingonberry preserves are a familiar Scandinavian-style accompaniment: a small spoonful on the side brings a tart-sweet note that balances the rich sauce. If lingonberries are difficult to find, cranberry preserves or a tart cranberry sauce make a practical substitute, though they are usually sweeter and less distinctly sharp.

For a simple family-style meal, bring the skillet to the table and serve rice from a separate bowl. Offer extra parsley and black pepper, plus a vegetable that can be prepared while the meatballs simmer. If serving guests, keep the rice covered until dinner and loosen it with a fork just before plating; avoid leaving cooked rice at room temperature for an extended period.

Variations

For a more traditional Scandinavian-inspired plate, serve the meatballs and gravy with mashed or boiled potatoes instead of rice. The meatballs and sauce are the same; prepare about 2 pounds (900 g) of potatoes, adjusting the cooking time to suit the variety and size. Egg noodles also work when you want a soft, sauce-catching base.

Ground allspice and nutmeg give the meatballs a gentle warm spice, but you can use only allspice if nutmeg is unavailable. For a more pronounced spice note, increase the allspice to ⅜ teaspoon (about 0.75 g), rather than adding a large amount at once. If you cannot find lingonberry preserves for serving, cranberry is an easy substitute; no special ingredient is required in the meatball mixture itself.

To make the sauce without heavy cream, use ½ cup (120 ml) whole milk instead. The gravy will be lighter and less rich; for a fuller texture, use ⅓ cup (80 ml) milk plus 2 tablespoons (30 g) sour cream, stirring the sour cream in over low heat near the end rather than boiling it. For a gluten-free adaptation, use certified gluten-free breadcrumbs and replace the all-purpose flour with a measure-for-measure gluten-free flour blend. Check that the broth and Worcestershire sauce are also labeled gluten-free.

Storage and Reheating

Refrigerate leftovers within 2 hours of cooking. Store the meatballs and gravy in an airtight container, ideally separate from the rice so the rice does not absorb all the sauce. They keep for 3–4 days in the refrigerator. Cooked rice should also be cooled and refrigerated promptly; portioning it into a shallow container helps it cool faster. Do not leave either component sitting out while the meal is being served.

Reheat only the amount you plan to eat. Warm the meatballs and gravy in a covered saucepan over low to medium-low heat, stirring carefully and adding a tablespoon or two of broth or water if the sauce has thickened. Reheat rice with a small splash of water, covered, in the microwave or in a saucepan, stirring partway through. Heat leftovers to 165°F (74°C), checking the center with a food thermometer. For freezing, pack cooled meatballs and gravy in a freezer-safe container for up to 2–3 months for best quality; freeze rice separately. Thaw in the refrigerator overnight and reheat thoroughly.

Frequently Asked Questions

Can I make Swedish meatballs over rice ahead?
Yes. The meatballs and gravy can be cooked a day ahead, cooled, and refrigerated. Reheat them gently in a covered skillet with a splash of broth, bringing the center of the meatballs to 165°F (74°C) for reheated leftovers. Rice is best cooked close to serving, but it can also be made ahead and chilled promptly; reheat it until steaming hot and to 165°F (74°C).

Why are my meatballs tough?
The usual causes are overmixing, packing the mixture tightly while shaping, or cooking them too long. Mix only until the ingredients are distributed, form them loosely, and use a thermometer to check doneness rather than relying on extra simmering. The breadcrumb-and-milk mixture, sometimes called a panade, also helps keep the texture tender.

Can I use ground turkey instead of beef and pork?
You can substitute ground turkey, but the meatballs will taste milder and may be leaner or softer depending on the package. Handle the mixture gently and brown carefully because lean meat can dry out more quickly. Since the recipe then contains poultry, cook the meatballs to the USDA FSIS safe minimum of 165°F (74°C), measured in the center.

What can I use instead of beef broth?
Chicken broth works well and gives a lighter-tasting gravy. Vegetable broth is another option, though the sauce may have less depth; choose a savory, low-sodium variety and taste before adding more salt. Water can work in a pinch, but the gravy will be less flavorful, so a little extra Worcestershire or a small pinch of salt may help.

Can I cook the meatballs in the oven?
Yes. Arrange them on a lightly oiled, rimmed baking sheet and bake at 400°F (200°C) for about 15–20 minutes, turning once if you want more even browning. Check the center of a large meatball with a food thermometer and cook ground beef and pork to 160°F (71°C). Make the gravy in a skillet, then add the cooked meatballs and their pan juices to warm through.

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).