This post may contain affiliate links. Please read our disclosure policy.
A recent IKEA trip had me thinking about Swedish meatballs again. The meatballs, gravy, mashed potatoes, and lingonberry jam are such a simple combination, but it always works.
This Swedish meatballs recipe is one of those easy dinner ideas that I can easily make when I’m craving that same meal. It has the familiar flavors, but the meatballs are softer, the Swedish Meatball Sauce is creamier, and you can make the whole plate exactly how you like it.

Table of Contents
The IKEA Meatballs That Started It
I actually enjoy IKEA meatballs, and this recipe came from wanting that same kind of dinner at home after a recent visit.
The biggest difference for me is that homemade meatballs give you more control. I can use the beef and pork ratio I like, season them properly, and make enough gravy to really coat everything instead of just spooning a little over the top.
I also like serving them with plenty of mashed potatoes and lingonberry jam. It still feels like the IKEA plate, just more like something I’d make for dinner at home. It’s so good, everyone will want a second helping!
Choosing the Beef and Pork
For the beef, I like 80/20 (that’s means 80% lean meat and 20% fat) ground chuck. That gives you enough fat to keep the meatballs from drying out without making them greasy. I wouldn’t go for extra-lean beef here unless that’s all you have.
For the pork, 85/15 (that’s 85% lean meat and 15% fat) ground pork is a good choice if your store gives you the ratio. Regular ground pork works fine too. You can usually find both at major supermarkets.
If your store only carries standard ground beef and pork, use them. You don’t need a specialty blend for this recipe.
Five Ingredients Worth Knowing

- Ground beef: Use 80/20 ground chuck if you can. The fat helps keep the meatballs soft as they cook.
- Ground pork: Around 85/15 works well. The pork keeps the texture from becoming too firm and gives you a better balance with the beef.
- Grillkrydda: This is a Swedish grill seasoning. Santa Maria is one of the common brands, and the blend includes ingredients such as salt, paprika, onion, black pepper, garlic, chili, cumin, nutmeg and herbs. In the U.S., you’ll usually find it through Scandinavian grocery stores or online. If you can’t get it, use a grill seasoning with paprika, onion, garlic, and black pepper. I like to use an alternative all purpose blend like Red Robin’s Original seasoning.
- Breadcrumbs: I soak these in the milk and cream before adding the meat. It helps keep the mixture soft and stops the breadcrumbs from pulling too much moisture from the meat. Traditionally the Swedish will use breadcrumbs made from ground rusks or zwieback (which is a sweetened bread that is baked twice to give it a hard dry and crunchy texture) called ströbröd. But regular plain unseasoned bread crumbs will work here.
- Soy sauce: There’s only a small amount in the gravy. You won’t taste soy sauce on its own, but it helps the sauce taste more balanced.
Note: please see recipe card at the bottom for list of full ingredients and measurements
How to Make Swedish Meatballs
These come together pretty quickly once you have everything measured out. The main thing is to keep the meat mixture gentle and give the meatballs enough room in the pan to brown properly.
- Combine the milk, cream, egg, garlic, breadcrumbs, and seasonings and let the mixture sit for about 10 minutes. This ensures that the breadcrumbs will swell up and be ready to bind to the meat.
- Add the beef, pork, onion, and parsley, then mix just until everything comes together. Shape into 24 smaller meatballs or around 16 larger ones. The best way to do this is to portion them uniformly using a tablespoon of meat. Wet your hands to ensure the meat will not stick, or use a bit of oil, then squish them tight between your palms so they hold there shape when rolling in your palms. Don’t be afraid to compact them as they are not as delicate as italian meatballs.
- Heat the butter and oil in a skillet over at least medium heat and cook the meatballs in batches until browned and cooked through. Transfer them to a plate and keep the pan for the sauce.
Make the Swedish Meatball Sauce
While these meatballs are great on their own, they are much better paired with this sauce. It’s easy to whip up and worth the few additional steps.
- Add the butter and flour to the same skillet in the drippings and cook for a minute or two.
- Slowly whisk in the beef broth while scraping up anything left on the bottom of the pan. Stir in the cream, soy sauce, and Dijon mustard and let the sauce simmer until it thickens.
- Taste before adding extra salt, then return the meatballs to the pan and let them warm through in the sauce.




What I Serve With Them
Mashed Potatoes are still my first choice because they go perfectly with the gravy. Crispy Smashed Potatoes are a good option if you want something different.
For vegetables, keep it simple with Buttery Sautéed Green Beans, Crispy Parmesan Asparagus, or Parmesan Roasted Carrots.
For the IKEA-style plate, add lingonberry jam and peas. Pickled cucumber is another good option if you want to serve them more traditionally.
My Tips for Better Swedish Meatballs
A few small things make a noticeable difference with meatballs. These are the ones I pay attention to every time I make them.
- Don’t overmix the meat. Once the beef and pork go in, mix only until everything is evenly combined. Working the mixture too much can make the meatballs firm instead of soft.
- Keep them the same size. Use about one and half tablespoons of meat as a guide. This helps them cook at the same rate. If the mixture feels too soft to shape, refrigerate it for 10 to 15 minutes rather than adding more breadcrumbs. This will help them to keep there shape.
- Give them room in the pan. Cook in batches and let each side brown before turning. If the pan is crowded, the meatballs release moisture and start steaming instead.
- Keep the heat gentle once the cream goes in. The Swedish Meatball Sauce only needs a light simmer to thicken. Boiling it hard can cause the cream to separate.
- Taste before adding more salt. Grillkrydda, soy sauce, and beef broth all contain salt, so I always finish the sauce first and adjust the seasoning at the end.
Recipe FAQ’s
Use a grill or all-purpose seasoning with paprika, onion, garlic, and black pepper. I’d avoid anything very smoky or sweet because that changes the flavor too much. Check the salt level before adding any extra seasoning, since Grillkrydda and most substitutes already contain salt.
Yes. Use 80/20 ground beef for the full amount if you don’t want to use pork. The meatballs will be a little firmer, but they’ll still work well. I’d keep the higher fat percentage rather than switching to lean beef.
Yes, you can cook them in an oven instead. Bake them at 400°F until cooked through. Baking is useful if you’re making a large batch, but I still prefer using a skillet for this recipe because you get better browning and can use the same pan for the gravy.

You might also like

Get a free eBook!
Subscribe to Cafe Delites FOR FREE and receive recipes straight into your inbox!

The Best Swedish Meatballs Recipe
Ingredients
Meatballs:
- 1/2 cup breadcrumbs
- 1/2 cup milk
- 35 ml cream
- 1 egg large
- 1 clove garlic minced
- 1/3 teaspoon salt
- 1/4 teaspoon black pepper
- 1/4 teaspoon ground white pepper
- 1/4 teaspoon Grillkrydda or all spice or all purpose seasoning
- 1/2 onion finely chopped
- 1 pound ground beef mince
- 1/2 pound ground pork mince
- 2 tablespoons fresh parsley finely chopped
- 1 tablespoon butter
- 2 teaspoons olive oil
Gravy Sauce (OPTIONAL):
- 1/3 cup butter
- 1/4 cup plain flour all purpose flour
- 250 ml vegetable broth or stock
- 250 ml beef broth or stock
- 1 cup thickened or heavy cream
- 2 teaspoons soy sauce
- 1 teaspoon dijon mustard
- 1 pinch salt to season
- 1 pinch pepper to season
Instructions
- In a large bowl, combine the breadcrumbs, milk, cream (if using), egg, garlic, salt, black pepper, white pepper, and Grillkrydda. Let it sit for about 10 minutes so the breadcrumbs can absorb the liquid.

- Add the onion, beef, pork, and parsley. Mix gently with your hands just until everything is combined. Try not to overwork the meat.

- Shape the mixture into about 24 small meatballs or 16 larger ones. Lightly wet your hands if the mixture starts sticking.

- Heat 1 tablespoon butter and 2 teaspoons oil in a large skillet over medium-high heat. Cook the meatballs in batches, leaving space between them. Turn as needed until browned all over and cooked through, then transfer to a plate and loosely cover with foil.

- Keep the same skillet on the heat and add the 1/3 cup butter to the pan juices. Once melted, whisk in the flour and cook for 1 to 2 minutes, until lightly browned.

- Slowly whisk in the broth, then add the cream, soy sauce, and Dijon mustard. Bring to a gentle simmer, scraping up the browned bits from the bottom of the pan. Cook until the sauce thickens.

- Taste the sauce before adding extra salt, then return the meatballs to the skillet. Spoon the sauce over them and let everything warm together for a couple of minutes before serving.

To serve:
- Non Swedish way: Place meatballs into the gravy in the pan and serve
- Traditional Swedish way: Do not make the cream sauce at all. Serve meatballs over plain or stewed macaroni, plain or mashed potatoes, and lingenberry jam (optional)
Video
Notes
Make Ahead
You can get a lot of the work done ahead with these. Shape the meatballs the day before, cover them, and keep them in the refrigerator until you’re ready to cook. The sauce can also be made ahead and kept separately if that’s easier.Storage & Freezing
For leftovers, I like storing the meatballs in the gravy so they stay softer in the fridge. Keep everything in an airtight container and use within 3 to 4 days. They freeze well too. Cooked meatballs will keep for around 2 to 3 months, although I prefer freezing the sauce separately because cream sauces can change texture a little after thawing. Let everything thaw overnight in the refrigerator.Reheating
When reheating, keep the heat low and add a splash of broth or cream if the sauce has thickened too much. Heat the meatballs through to 165°F (74°C) before serving.Nutrition
Nutrition information is automatically calculated, so should only be used as an approximation.














End product was AMAZING but felt that the cook time listed was not realistic. It took me an hour and a half to make the recipe exactly as is along with mashed potatoes (which mostly cooked in the background while I was working on this recipe). I try to be pretty efficient and quick so I don’t know how I could have done it any faster. I am saving this recipe to use again because it was so good but keeping the time in mind next time. I also loved the portions. This covers dinner tonight and a couple nights of leftovers for two.
I just made this recipe for the 2nd time. I absolutely love it! The only thing that I do differently is that I only sear the meatballs to give them a nice color and then I put them in the oven at 400° while I make the sauce in my Dutch oven. When the sauce is done, I take the meatballs out of the oven and put them in the sauce in my Dutch oven, put the lid on it and put it back in the oven at 350 degrees for about 20 more minutes or until they are done. It gives the sauce a lot more flavor.
I love the recipe as is and always double the sauce 🙂 The 2nd time I made them I used a little more soy sauce (maybe 2 tablespoons) but remember I am doubling. I also added a tablespoon of worcestershire and 2 tablespoons of brown sugar. I always make these early in the day so they can sit on super low on the stove all day. Thanks for a wonderful recipe
I guess I should say reheat. I would fully prepare it!
I only have used the gravy sauce recipe and usually just buy frozen meatballs to make cooking a bit easier for me. But today, I decided to make the whole recipe and man oh man! This is the tastiest meatballs I’ve had in a while and I’ve made mine with turkey meat! What more with beef and pork! Thank you so much for this recipe!
Thank you for describing the difference between Swedish and ‘internationalized’ Swedish Meatballs. I have been making mine with a traditional French velouté sauce, sans cream (because of diabetic weight watching fussiness). I’ll try your way, now though. I wouldn’t have guessed at the soy sauce. I have been using Worcestershire in the stock.
I like them with pasta (rigatoni, lightly fried in oilive oil and garlic after boiling), or on a mash of potato, broccoli, and cauliflower.
Thanks again.
Peter from Brisbane
Meatballs and sauce were fantastic! Very well received at the dinner table and will be saving this recipe to make over and over!
This makes great Swedish meatballs and tasty gravy. I did a a few tweaks after reading the comments the second time I made it. Almond meal instead of bread crumbs, 1/2 tsp Grillkrydda (home-assembled), sauteed the onion, used beef bouillon in 500ml water, left out the parsley in the meatballs by mistake (but good for anti-greens family member), and substituted coconut aminos for soy sauce. With the almond meal, it’s lower carb, and if substituting cornstarch for the thickening and using coconut aminos instead of soy sauce, it can be gluten-free, as well, without sacrificing taste.
Wow! Wow! And Wow! This was the First time I made Swedish Meatballs! And it won’t be my last! Truly Easy and the Gravy is Amazing! I inhaled it! Lol! I will Definitely make Again! Thanks Again Karina! I Love all your recipes! Your Awesome! God Bless you and your Family!
I’ve never made this dish before so have nothing to compare it to. With that said, I won’t look any further for other recipes because this dish is darned good! I followed the recipe with no substitutions. After I cooked the meatballs I put them on a cookie sheet and covered with foil, popping in a 300F oven for ten minutes and then turned the oven off and left them in there while I made the gravy and cooked pasta shells. The meat and the gravy have such a delicious texture and taste. I think some of that taste is lost using pasta and will be serving it over mashed potatoes next time.