Posted on — Leave a comment

Swedish Meatballs Recipe: Tender, Creamy & Easy

Small Swedish meatballs with creamy brown gravy and mashed potatoes, served with ruby lingonberry preserves and thin pickled cucumber slices on a dark plate.

Break open a good Swedish meatball and the center should still look moist and tender, with browned edges catching the cream gravy as it runs into the potatoes underneath. A little lingonberry on the side cuts through the cream and browned meat.

Swedish meatballs are typically small, tender meatballs—often made with beef and pork—served with a creamy brown gravy. This batch takes about an hour, but the work itself is straightforward: mix, roll, brown, then make the gravy in the same skillet. Serve them with potatoes and lingonberry for a Swedish-style plate or spoon them over buttered egg noodles.

Three Checkpoints Before You Start

Three things are worth watching more closely than the clock.

  • Mixture: slightly tacky, but holding together when squeezed.
  • First browned side: give it time to build a crust. When it is ready, the meatball releases much more easily from the skillet.
  • Gravy: glossy and coating the meatballs, but still flowing into potatoes or noodles.
Three Swedish meatball cooking checkpoints showing cohesive raw meat mixture, a browned meatball releasing from a skillet, and flowing brown gravy.
Use these visual cues as gates rather than reminders: move on only when the current stage looks right, because mixture texture and pan heat vary more from kitchen to kitchen than the timer does.

Swedish Meatballs with Creamy Gravy

Beef-and-pork meatballs, browned in batches and finished gently in a silky cream gravy made from the skillet fond.

Prep25–30 minutes
Cook30–35 minutes
TotalAbout 1 hour
Serves6
YieldAbout 40 meatballs
Portion24 g / 0.85 oz each

Equipment

  • 12-inch / 30 cm heavy skillet
  • Large mixing bowl
  • Fine-hole grater or the small holes of a box grater
  • Whisk
  • Instant-read thermometer
  • 1 1/2-tablespoon cookie scoop and digital kitchen scale, optional

For the Meatballs

  • 2 oz / 60 g soft white sandwich bread, torn into pieces
  • 1/3 cup / 80 ml whole milk
  • 1 small yellow onion, about 3 oz / 85 g, finely grated with its juices
  • 1 large egg
  • 14 oz / 400 g 80/20 ground beef
  • 10 oz / 280 g ground pork
  • 9 g fine sea salt, about 1 1/2 teaspoons
  • 1/2 teaspoon freshly ground black pepper
  • 1/4 teaspoon ground allspice
  • 1/4 teaspoon ground nutmeg
  • 1 tablespoon / 15 ml neutral cooking oil, as needed

For the Swedish Meatball Gravy

  • Rendered meatball fat, if available
  • 2 tablespoons / 28 g unsalted butter, plus 1 tablespoon / 14 g more if the skillet has very little usable meatball fat
  • 3 tablespoons / 24 g all-purpose flour
  • 2 cups / 475 ml low-sodium beef stock
  • 1/2 cup / 120 ml heavy cream
  • 1 teaspoon Dijon mustard
  • 2 teaspoons soy sauce
  • 1/4 teaspoon freshly ground black pepper, plus more to taste
  • Fine sea salt, only if needed at the end

For Serving

  • 2 1/2 lb / 1.1 kg potatoes, for mashing or boiling
  • Lingonberry preserves
  • Pickled or pressed cucumber
  • Or 8–10 oz / 225–285 g dry egg noodles; use 8 oz for a gravy-heavy plate and 10 oz if you want more noodles

Instructions

1. Make the bread-and-milk panade

Combine the bread and milk and leave them for 5 minutes. Mash until the bread becomes a thick, soft paste.

Look for this: all of the bread should be moist, with no loose milk sitting underneath.

Moist bread-and-milk panade in a ceramic bowl with a fork, showing softened hydrated bread with no visible pool of milk.
Press the softened bread against the bowl: it should smear easily, with no dry flecks inside. If it resists, give the panade another minute.

2. Mix just until the meat holds together

Mix the grated onion and its juices, egg, salt, black pepper, allspice and nutmeg into the softened bread. Add the beef and pork and work everything together with your hands.

If you prefer a gentler warm-spice note, add only 1/8 teaspoon each allspice and nutmeg at this stage and reserve the rest for after the tester.

Once the mixture looks evenly combined and holds together when squeezed, it is ready. A little tackiness is normal, but you should still be able to see the texture of the ground meat.

3. Fry a tester

Heat the skillet over medium heat and add a few drops of the measured oil. Flatten 1 tablespoon / 15 g of the mixture into a tiny patty and cook it through.

Taste it while there is still time to change the batch. Add salt or pepper if needed. If you started with half the warm spices and want more, add the reserved allspice and nutmeg now, sprinkling everything evenly over the mixture and folding only until distributed.

4. Shape about 40 meatballs

Portion the mixture into 24 g / 0.85 oz balls, about 1 1/2 tablespoons each.

If the mixture sticks lightly to your hands but holds its shape, dampen your hands and keep rolling. Chill it for 10–15 minutes only if the balls actually slump or will not hold their shape.

Raw 24-gram Swedish meatball portion on a digital kitchen scale beside a metal scoop.
Calibrate the scoop against the scale on the first few Swedish meatballs, then spot-check occasionally instead of weighing all 40. The goal is even cooking—not laboratory-perfect spheres.

Still too soft? If the mixture refuses to hold after chilling, jump to the meatball fixes before adding more bread.

5. Brown them in batches

Wipe out any crumbs from the tester. Heat the skillet over medium-high and add the remaining oil as needed to leave a thin film across the bottom. Once the oil shimmers, add one-third of the meatballs, leaving room between them.

Leave the first side alone for 1 1/2 to 2 minutes, then test one gently. If it still grips the pan, give it another 20–30 seconds. Once it releases, turn or roll the meatballs and brown the remaining surfaces for another 3–4 minutes.

Transfer them to a plate and repeat with the remaining batches. They should be well browned outside but do not need to be cooked through yet; they will finish in the gravy.

Adjust the heat as you go so the meatballs keep browning steadily without scorching the pan. By the third batch, dark brown patches across the bottom are useful; black ones are not.

Small browned Swedish meatball being lifted from a skillet, revealing a mahogany underside and dark-brown fond on the pan.
After the first side releases, roll each meatball onto a fresh contact point and leave it alone again. Constant nudging steals contact time, so you get less crust even when the skillet is hot enough.

6. Set up the gravy

Spoon away excess rendered fat, leaving roughly 1 tablespoon in the skillet if you have it. Add 2 tablespoons / 28 g butter. If the pan has very little usable fat, use the full 3 tablespoons / 42 g butter instead.

Reduce the heat to medium. Whisk in the flour and cook for 1 1/2 to 2 minutes, until it bubbles, smells lightly nutty and loses its raw flour smell.

7. Whisk in the stock

Add one-quarter of the beef stock while whisking firmly and scraping up the browned bits. The roux will seize into something thick enough to look wrong at first. Keep whisking.

Add the remaining stock in several additions, smoothing each one before adding more. Bring the gravy to a gentle simmer and cook for 3–4 minutes.

Whisk moving through a very thick, smooth roux after the first addition of beef stock.
Before adding more stock, whisk across the skillet bottom and corners until the thick roux is smooth; small lumps are easier to fix now.

8. Add the cream and seasoning

Stir in the heavy cream, Dijon, soy sauce and black pepper. Keep the simmer gentle for another 2–3 minutes.

By now the sauce should look like dinner: warm brown, glossy and flowing between the meatballs. Drag a spoon through it. The trail should stay visible for a moment, then slowly fill back in.

Warm brown Swedish meatball gravy pouring from a small metal pitcher into a smooth, glossy pool.
Aim for Swedish meatball gravy that is slightly looser here than you want on the plate: the meatballs still have to simmer in it, and the short rest will tighten the sauce again before serving.

9. Finish the meatballs in the gravy

Return the meatballs and any juices from the plate to the skillet. Turn them gently so the gravy coats the surfaces while some of the browned patches still show through.

Begin checking the larger meatballs after 2–3 minutes and continue simmering only until the centers reach 160°F / 71°C.

Instant-read thermometer inserted into a small Swedish meatball in brown gravy, reading 160 degrees Fahrenheit, with more meatballs nearby.
Probe one of the larger meatballs from the side toward the center. A top-down probe can pass through the center and read the gravy beneath.

Take the skillet off the heat once they are done. Now taste the gravy.

10. Make the last adjustment

Add salt only if the finished gravy needs it. If it has become thicker than you like, loosen it with warm beef stock 1 tablespoon / 15 ml at a time.

Let the skillet stand for 2–3 minutes; the gravy will settle and thicken slightly. Then serve.

Skillet filled with small browned Swedish meatballs in creamy brown gravy, with patches of browned crust still visible.
At serving, gravy should settle between the meatballs rather than cap them. If the gaps disappear, loosen the sauce before plating.

Gravy still not right? Jump to the gravy fixes before serving.

Tender Meatballs Still Need Some Structure

A good meatball gives easily under a fork and still cuts cleanly. A springy meatball has usually gone too far. If the center feels spongy instead, the binder is starting to dominate.

Fork holding a broken-open Swedish meatball with a moist cooked center, visible ground-meat texture, browned crust and gravy.
A tender Swedish meatball should show a moist, irregular ground-meat texture. A smooth, uniform cross-section can point to an overworked mixture.

Pork softens the bite without asking the bread to do all the work. Hydrating the bread first lets it carry moisture through the meat instead of behaving like dry crumbs. You see the same effect in the meatloaf, where softened bread keeps the meat tender while still firm enough to slice.

Finely grated onion disappears into the mixture more easily than chopped onion and avoids larger pieces that can interrupt the soft interior or make shaping harder. Keep the juice too; that moisture is already part of the measured mixture.

Mix Just Enough, Then Brown Them Well

Mix only until the beef, pork and binder hold together and a squeezed portion stays intact. Stop there. Mixing much beyond that tightens the cooked texture. If the mixture still crumbles in your hand, it needs a little more work.

At 24 g each, these meatballs stay deliberately compact. They brown quickly and give you more crust in every forkful. For a larger baked meatball, our juicy meatball recipe uses 42 g / 1 1/2 oz portions with different seasoning and a different cooking method.

That first crust does more than add color: it gives the soft meatball structure for turning. Crowding the skillet traps steam and delays the crust, which is why the batches matter.

Swedish Meatball Sauce Starts in the Skillet

By the time the last batch leaves the pan, the gravy is already halfway started. A light roux gives the stock and cream body without burying the flavor of the browned fond.

The sauce should taste as though it belongs to the meatballs rather than something made separately and poured over them. Keep the browned bits and only as much rendered fat as the roux needs. The same browned residue also gives our mushroom gravy for Salisbury steak much of its depth.

Cook the flour briefly before adding stock. The roux tightens dramatically at first; each addition of stock loosens it again and pulls more flavor from the bottom of the skillet.

Dijon sharpens the cream slightly. Soy deepens the beef flavor without announcing itself. Taste for salt only after the gravy has reduced; the seasoned meat, stock and soy may already have done enough.

Shortcut note: Some American frozen-meatball and slow-cooker versions use canned cream of mushroom soup. The roux supplies the body here, while the browned skillet supplies the flavor, so canned soup isn’t doing a necessary job.

What to Serve With Swedish Meatballs

For a Swedish-style plate

Serve them with mashed or boiled potatoes, lingonberry preserves and pickled or pressed cucumber.

For six servings, plan on 2 1/2 lb / 1.1 kg potatoes. The creamy mashed potatoes stay soft enough for the gravy to sink through rather than sitting on top.

A spoonful of lingonberry does the job. Its tartness cuts through the meat and cream, so the next forkful still tastes rich without feeling heavy. If lingonberry isn’t available, tart whole-berry cranberry sauce is a practical stand-in, though the flavor isn’t identical.

For a similar crisp, vinegary contrast, the cucumber salad works well too, although it isn’t traditional Swedish pressgurka.

Swedish-style plate with meatballs and brown gravy beside mashed potatoes, lingonberry preserves and thin pickled cucumber slices.
Keep lingonberry and cucumber beside the gravy so their cool, tart contrast stays distinct in each rich forkful.

For Swedish meatballs with egg noodles

Use 8 oz / 225 g dry egg noodles for a gravy-heavy plate, or up to 10 oz / 285 g if you want more noodles. Butter them lightly and spoon the meatballs and gravy over the top.

Keep the gravy slightly looser when serving it with noodles; they continue absorbing sauce as they sit.

Swedish meatballs in creamy brown gravy served over broad egg noodles, with sauce flowing between the noodle folds.
Look for gravy still pooling lightly between the noodle folds at serving; if it disappears immediately, spoon a little reserved sauce over the top.

Substitutions and Shortcuts

  • All beef: Replace the 10 oz / 280 g pork with the same amount of 80/20 ground beef. Keep the bread, milk, onion and egg unchanged. The result will be a little firmer than the beef-and-pork version, so watch the internal temperature closely.
  • Sour cream: Replace the heavy cream with 1/2 cup / 120 ml full-fat sour cream for a tangier gravy. Stir a little warm gravy into the sour cream first, then add it over gentle heat. If the sauce tightens too much, loosen it with a splash of stock.
  • Whole milk: Use 1/2 cup / 120 ml in place of the heavy cream for a lighter, less rich gravy. The roux will still provide the body.
  • Allspice and nutmeg: Swedish köttbullar do not hinge on either spice. Visit Sweden’s traditional recipe, for example, uses neither. Omit either or both if you prefer. For a gentler starting point, use 1/8 teaspoon each, fry the tester, then add the remaining 1/8 teaspoon each if you want more warmth.

Quick Shortcuts: Frozen or Baked Swedish Meatballs

Short on time? Use 1 1/2 lb / 680 g fully cooked frozen meatballs and put your effort into the gravy. If they are thawed or the package allows skillet heating, brown them briefly as they warm, then remove them and make the gravy in the same pan. Otherwise, heat them according to the package directions and make the gravy with butter as the starting fat.

Return the cooked meatballs only long enough to heat through. Previously cooked meatballs should reach 165°F / 74°C. Taste before adding salt; commercial meatballs can already bring plenty of it.

Prefer baking? Arrange the 24 g meatballs on a lightly greased rimmed metal sheet and bake at 425°F / 220°C. Begin checking at 12 minutes and cook until the centers reach 160°F / 71°C. Because they are already fully cooked, add them to the finished gravy only long enough to coat and warm through. The tradeoff is less skillet fond and therefore less roasted depth in the sauce.

Small baked Swedish meatballs spaced across a metal sheet pan with browned surfaces.
Leave space between baked Swedish meatballs on the metal sheet. Direct pan contact plus moving hot air builds color; crowding traps steam around the meatballs and softens the exterior instead.

Looking for the IKEA-style version? IKEA’s published meatball and cream-sauce method is its own formulation, so this skillet-fond version isn’t meant as a copycat.

If the Meatballs Go Wrong

Problem What to do
They fall apart Give a soft mixture 10–15 minutes in the refrigerator before adding more bread. In the skillet, wait for the first side to release cleanly before turning.
They are tough Next batch, stop mixing as soon as the mixture holds together and pull the meatballs once they reach 160°F / 71°C.
They are mushy Next batch, keep the measured bread-and-milk ratio and avoid adding extra liquid.
They stay pale Give the skillet more heat and more space. Work in batches and leave the first side alone long enough to brown.

Once you know what went wrong, review mixing and browning or return to the recipe card.

If the Gravy Goes Wrong

Gravy problems usually look worse than they are. Most can be corrected without starting over.

Problem What to do
Too thin Simmer for another 1–3 minutes before adding anything else. Give reduction a chance to work first.
Too thick Whisk in warm beef stock 1 tablespoon / 15 ml at a time until the sauce flows again.
Lumpy Whisk firmly over gentle heat. Next time, smooth the first small addition of stock before adding more.
Greasy Spoon off obvious surface fat and keep the heat gentle. Hard boiling can make a cream sauce look oily.
Too salty Loosen with unsalted stock, water and/or a little cream.
Bland Taste for salt first, then black pepper. If the seasoning is right but the gravy still tastes flat, add a very small amount of Dijon or soy.
Split or grainy Lower the heat and whisk gently. If you used sour cream, keep the sauce away from a hard boil.
Warm beef stock being poured into thick brown gravy around Swedish meatballs while a whisk loosens the sauce.
Whisk each spoonful of stock through the whole skillet before adding another. The area around the pour loosens first, so judging the Swedish meatball gravy too quickly can make you over-thin the rest of the pan.

Need the method again? Review how the gravy starts or return to the recipe card.

Make Ahead, Store and Reheat

  • Shape ahead: refrigerate the raw shaped meatballs, covered, for up to 1 day.
  • Cooked leftovers: refrigerate the meatballs and gravy in an airtight container for 3–4 days.
  • Freeze: cooked meatballs keep their best quality for 2–3 months.

Getting forty meatballs rolled the day before removes the fiddliest part of the final hour.

For the cleanest sauce texture after freezing, freeze the cooked meatballs separately and make fresh gravy later. The complete dish can still be frozen when convenience matters more, although dairy gravy may look slightly less smooth after thawing.

Reheat gently

Warm the meatballs and gravy in a covered skillet or saucepan over low to medium-low heat. Cold gravy may look almost too thick at first; a splash of stock usually brings it back. Reheated leftovers should reach 165°F / 74°C.

Swedish meatballs reheating in a saucepan of glossy brown gravy, with a spoon lifting one meatball.
Reheat Swedish meatballs covered at first so the centers warm before the gravy has time to reduce. Once everything is hot, uncover only if the sauce still needs tightening; if it is already thick, add stock instead.

If egg noodles were stored with the meatballs, they will have absorbed some of the sauce overnight. Add stock gradually as everything warms. Stop when the gravy flows around the meatballs again instead of clinging heavily to the noodles.