Swedish Meatballs – Easy, Cozy, Family Favorite
If you love comforting dinners that make the whole kitchen smell amazing, you’re going to be hooked on these Swedish meatballs. Each little meatball is soft and juicy, seasoned with warm spices, then simmered in a rich and creamy brown gravy. It tastes like the best “IKEA Swedish meatballs” copycat but made fresh in your own kitchen with simple ingredients you already know.
These Swedish meatballs are perfect for busy weeknights, but they’re also special enough for Sunday dinner or holidays. The meatballs stay tender thanks to a quick panade (bread + milk mixture), and the gravy comes together right in the same skillet. Less cleanup, more cozy family time.
Serve them over fluffy mashed potatoes, egg noodles, or rice and you’ve got a complete, stick‑to‑your‑ribs meal everyone will love. If you’re into cozy dinners, you’ll also like [link: Creamy Garlic Parmesan Chicken] for another easy weeknight favorite.
Why You’ll Love These Swedish Meatballs
- Ultimate comfort food – Creamy gravy, tender meatballs, and fluffy potatoes make this the kind of cozy family dinner you’ll crave on chilly nights.
- Better than restaurant – You control the seasoning and use real butter, broth, and cream, so your Swedish meatballs taste fresher and richer than takeout or frozen.
- Weeknight friendly – Ready in about 45 minutes with pantry staples, so it’s totally doable on a busy weeknight.
- One-pan cleanup – The meatballs and gravy are cooked in the same skillet, which means fewer dishes and an easier cleanup.
- Kid and crowd approved – Mild flavors with just a hint of warm spice make this a huge hit with kids and picky eaters.
- Great for meal prep – Swedish meatballs reheat really well, so you can make them ahead for lunches or quick dinners.
Ingredients for Swedish Meatballs
For the Meatballs
- Ground beef (1 pound, 80–85% lean)
Gives the meatballs that classic rich flavor and stays juicy. You can mix in some ground pork for extra tenderness. - Ground pork (1/2 pound)
Adds fat and flavor so the meatballs don’t dry out. You can use all beef if you prefer, or swap for ground turkey for a lighter version. - Plain breadcrumbs (3/4 cup)
Help bind the meatballs and keep them soft. Use panko for a slightly looser texture, or crushed butter crackers for extra flavor. - Whole milk (1/2 cup)
Soaks into the breadcrumbs to make a panade, which keeps the meatballs moist and tender. Half‑and‑half or 2% milk also work. - Egg (1 large)
Helps everything hold together so the meatballs don’t fall apart in the pan. If you’re out of eggs, add a splash more milk and breadcrumbs, but texture will be softer. - Yellow onion, finely minced (1 small)
Adds sweetness and moisture. Grating the onion instead of chopping helps it disappear into the meatballs. - Garlic (2–3 cloves, minced)
Adds savory flavor. Use 1 teaspoon garlic powder in a pinch. - Kosher salt (1 1/4 teaspoons)
Seasons the meatballs all the way through. Adjust to taste if your broth is very salty. - Black pepper (1/2 teaspoon)
Adds gentle heat and balances the richness. - Allspice (1/4 teaspoon)
Classic for Swedish meatballs; gives that subtle warm, “what is that?” flavor. You can use a pinch of cinnamon and nutmeg if needed. - Nutmeg (1/4 teaspoon)
Works with the allspice to give the meatballs their signature cozy taste. Freshly grated is best, but ground works too. - Olive oil or neutral oil (2–3 tablespoons, for frying)
For browning the meatballs in the skillet. Use what you have—canola, vegetable, or avocado oil all work.
For the Creamy Gravy
- Butter (4 tablespoons)
Forms the base of the roux and gives the gravy a silky, rich flavor. Salted or unsalted both work; adjust salt at the end. - All‑purpose flour (1/4 cup)
Thickens the gravy so it coats each meatball and your mashed potatoes beautifully. - Beef broth (2 cups, low sodium)
Gives the gravy a deep, savory backbone. Use low‑sodium so you can control the salt. Chicken broth also works if that’s what you have. - Worcestershire sauce (1 tablespoon)
Adds umami and a touch of tang, rounding out the flavor of the gravy. - Dijon mustard (1–2 teaspoons)
Just a bit for tang and depth—it won’t make the gravy taste “mustardy,” it just brightens it. - Heavy cream (3/4 cup)
Makes the gravy luxuriously creamy. Half‑and‑half works for a lighter version, but it will be a bit less thick. - Salt and pepper, to taste
Season the gravy at the very end once it has thickened. - Fresh parsley, chopped (2–3 tablespoons, optional)
For a pop of color and freshness on top when serving.
For Serving (Optional but Delicious)
- Mashed potatoes, buttered egg noodles, or cooked rice
- Lingonberry jam or cranberry sauce for a sweet‑tart contrast
- Steamed green beans or a simple green salad
How to Make Swedish Meatballs

- Make the panade and meatball mixture
In a large mixing bowl, stir together the breadcrumbs and milk until all the crumbs are evenly moistened. Let this sit for about 5 minutes—this is your panade and it helps keep the meatballs tender. Add the egg, grated onion, minced garlic, salt, pepper, allspice, and nutmeg. Whisk or stir until everything is well combined. - Mix and shape the meatballs
Add the ground beef and ground pork to the bowl. Use clean hands to gently mix just until the breadcrumb mixture is evenly worked through the meat. Try not to over‑mix; stopping as soon as everything looks combined keeps the meatballs soft. Roll into small meatballs, about 1 to 1 1/4 inches in diameter (roughly 30–35 meatballs). Set them on a parchment‑lined baking sheet or plate. - Brown the meatballs in batches
Heat 2 tablespoons of oil in a large, deep skillet over medium‑high heat. Once the oil is hot and shimmering, add the meatballs in a single layer without crowding the pan. Brown them on all sides, turning every 2–3 minutes, for a total of 6–8 minutes. They do not need to be fully cooked yet; they’ll finish in the gravy. Transfer browned meatballs to a plate and repeat with the remaining batch, adding a little more oil if needed. Leave the browned bits (fond) in the pan—this is flavor for your gravy. - Make the roux for the gravy
Reduce the heat to medium. Add the butter directly to the same skillet. When melted, sprinkle in the flour and whisk constantly for 1–2 minutes. The mixture will look like a thick paste. Cook until it smells slightly nutty and turns a light golden color, but don’t let it get too dark. This step cooks off the raw flour taste. - Build the creamy gravy
Slowly pour in the beef broth while whisking to prevent lumps. The mixture may look a little thin at first, but it will thicken as it simmers. Stir in the Worcestershire sauce and Dijon mustard. Let the gravy bubble gently for 3–5 minutes, whisking often, until slightly thickened. Turn the heat to medium‑low and stir in the heavy cream. Simmer another 3–4 minutes until the gravy is thick enough to coat the back of a spoon. If it seems too thick, whisk in a splash of broth or water; if too thin, let it simmer a few more minutes. - Simmer the meatballs in the gravy
Nestle the browned meatballs back into the skillet with the gravy, along with any juices on the plate. Spoon some gravy over the top of each meatball. Cover the skillet with a lid (or loosely with foil) and let the meatballs simmer over medium‑low heat for 8–10 minutes, or until cooked through and the internal temperature reaches 165°F. Stir gently once or twice so they don’t stick and the gravy doesn’t scorch. - Taste, adjust, and serve
Once the meatballs are fully cooked, taste the gravy and season with more salt and pepper if needed. It should taste rich, savory, and slightly tangy. If you like it creamier, stir in an extra splash of cream right at the end. Sprinkle with chopped fresh parsley and serve your Swedish meatballs hot over mashed potatoes, noodles, or rice with lingonberry jam on the side.
Tips for Perfect Swedish Meatballs
- Don’t skip the panade – Soaking breadcrumbs in milk first is the key to super tender meatballs; adding them dry can make the texture dense.
- Grate the onion – Grating instead of chopping gives you tiny pieces that melt into the meatballs and keep them moist without big chunks.
- Mix gently – Overworking the meat mixture can make meatballs tough. Think of it more like folding than kneading.
- Brown in batches – Crowding the pan steams the meatballs instead of browning them. Work in 2–3 batches for the best color and flavor.
- Adjust the gravy – If the gravy thickens too much while simmering, whisk in a splash of broth or water until it’s just creamy enough to pour.
- Keep them warm for serving – For parties, transfer cooked Swedish meatballs and gravy to a slow cooker on “warm” so they stay hot and saucy. Try this trick with [link: Slow Cooker Beef Tips and Gravy] too.
Variations & Substitutions
- Turkey or chicken Swedish meatballs – Swap the beef and pork for ground turkey or chicken. Use at least some dark meat if possible so they stay juicy, and add a little extra cream in the gravy.
- All‑beef version – If you don’t eat pork, use 1 1/2 pounds of ground beef. A mix of 85% and 90% lean works nicely.
- Gluten‑free – Use gluten‑free breadcrumbs and a gluten‑free all‑purpose flour blend for the gravy. Make sure your Worcestershire sauce is gluten‑free too.
- Lighter dairy – Swap the heavy cream for half‑and‑half or even whole milk. The gravy will be a bit thinner, but still cozy and delicious.
- Extra cozy spice – Add a pinch more nutmeg or a dash of white pepper for a slightly more traditional Swedish flavor.
- Cheesy twist – Stir a handful of freshly grated Parmesan into the gravy right at the end for an extra savory, cheesy note.
- Meal prep bowls – Serve leftover Swedish meatballs over brown rice or egg noodles with steamed broccoli for easy heat‑and‑eat lunches.
Storing, Freezing & Reheating
- In the fridge – Let the meatballs and gravy cool to room temperature, then store in an airtight container in the refrigerator for up to 3–4 days.
- In the freezer – Swedish meatballs freeze well. Cool completely, then transfer to a freezer‑safe container or zip‑top bag, removing as much air as possible. Freeze up to 2–3 months.
- Thawing – For best texture, thaw frozen meatballs and gravy overnight in the fridge.
- Reheating on the stove – Warm gently in a covered skillet over low heat, stirring occasionally, until heated through. Add a splash of broth or cream if the sauce has thickened too much.
- Microwave reheating – Reheat individual portions in a microwave‑safe dish in 30‑second bursts, stirring between each, until hot.
- Make‑ahead – You can form and brown the meatballs up to 1 day ahead. Store them in the refrigerator, then finish cooking them in the gravy when you’re ready to serve.
Serving Suggestions
- Classic comfort plate – Serve Swedish meatballs over creamy mashed potatoes with lingonberry jam or cranberry sauce for that sweet‑tart bite.
- Pasta night – Spoon meatballs and gravy over buttered egg noodles with a side of steamed peas or green beans.
- Lighter option – Serve over cauliflower mash or a bed of sautéed cabbage for a lower‑carb twist.
- Party bites – Make the meatballs a little smaller, keep them warm in a slow cooker with extra gravy, and serve with toothpicks as an appetizer.
- Simple sides – Pair with roasted carrots, a crisp green salad, or crusty bread to soak up every drop of gravy. For another cozy side idea, try [link: Roasted Garlic Mashed Potatoes].

Swedish Meatballs (Best Creamy Homemade Version)
- Total Time: 45
Description
These Swedish meatballs are tender, juicy, and simmered in a rich, creamy gravy that tastes better than restaurant or frozen versions. Serve over mashed potatoes or noodles for an easy, cozy family dinner.
Prep Time: 20 minutes
Cook Time: 25 minutes
Total Time: 45 minutes
Servings: 6
Course: Dinner
Method: Stove Top
Cuisine: Swedish / Scandinavian Inspired
Ingredients
For the Meatballs
– 3/4 cup plain breadcrumbs
– 1/2 cup whole milk
– 1 large egg
– 1 small yellow onion, finely grated
– 2–3 cloves garlic, minced
– 1 1/4 teaspoons kosher salt
– 1/2 teaspoon black pepper
– 1/4 teaspoon ground allspice
– 1/4 teaspoon ground nutmeg
– 1 pound ground beef (80–85% lean)
– 1/2 pound ground pork
– 2–3 tablespoons olive oil or neutral oil, for frying
For the Gravy
– 4 tablespoons butter
– 1/4 cup all‑purpose flour
– 2 cups low‑sodium beef broth
– 1 tablespoon Worcestershire sauce
– 1–2 teaspoons Dijon mustard
– 3/4 cup heavy cream
– Salt and pepper, to taste
– 2–3 tablespoons chopped fresh parsley, for garnish (optional)
Instructions
1. In a large bowl, combine breadcrumbs and milk. Let sit 5 minutes. Stir in egg, grated onion, garlic, salt, pepper, allspice, and nutmeg.
2. Add ground beef and ground pork. Mix gently with your hands just until combined. Shape into 1–1 1/4‑inch meatballs (about 30–35 meatballs).
3. Heat oil in a large skillet over medium‑high heat. Brown meatballs in batches for 6–8 minutes total, turning often, until golden on all sides. Transfer to a plate; they don’t need to be fully cooked yet.
4. Reduce heat to medium. Add butter to the same skillet. When melted, whisk in flour and cook 1–2 minutes until lightly golden.
5. Slowly whisk in beef broth until smooth. Stir in Worcestershire sauce and Dijon mustard. Simmer 3–5 minutes until slightly thickened, then stir in heavy cream. Simmer another 3–4 minutes until the gravy coats the back of a spoon.
6. Return meatballs (and any juices) to the skillet, nestling them into the gravy. Cover and simmer over medium‑low heat 8–10 minutes, or until the meatballs are cooked through and reach 165°F inside.
7. Taste gravy and season with additional salt and pepper as needed. Garnish with chopped parsley and serve hot over mashed potatoes, noodles, or rice.
Notes
– For a lighter version, substitute half‑and‑half for the heavy cream and use leaner ground meat.
– For gluten‑free Swedish meatballs, use gluten‑free breadcrumbs and a gluten‑free flour blend for the gravy.
– Meatballs and gravy can be made ahead and kept in the fridge for up to 3–4 days or frozen for up to 2–3 months. Add a splash of broth or cream when reheating if the sauce thickens.
- Prep Time: 20
- Cook Time: 20
- Category: Dinner
- Method: Stove Top
- Cuisine: Swedish / Scandinavian Inspired
Nutrition
- Calories: 540
- Sodium: 700
- Fat: 30
