Sweden · Europe

Vegan Swedish Meatball Recipe with Creamy Gravy

Updated November 3, 2026

Total time
1 hr 29 min
prep 45 min · cook 44 min
Serves
4
portions as written
Cuisine
Sweden
Europe

Jump to recipe

Vegan Swedish Meatball Recipe with Creamy Gravy

Vegan Swedish meatballs are savory, bite-size lentil-and-mushroom balls served with a creamy, dairy-free gravy. Inspired by Swedish köttbullar, this plant-based version uses allspice and nutmeg for a warm, gently spiced flavor, and it is satisfying over mashed potatoes, noodles, or rice.

Ingredients

  • 1 tablespoon ground flaxseed (7 g) and 3 tablespoons water (45 ml), for binding
  • 1 teaspoon olive oil (5 ml), for the baking sheet
  • 1 tablespoon olive oil (15 ml), for cooking the vegetables
  • 1½ cups finely chopped cremini mushrooms (135 g)
  • ½ cup finely diced yellow onion (75 g)
  • 2 garlic cloves, minced (about 6 g)
  • 1 cup cooked brown or green lentils, drained and patted dry (200 g)
  • 1 tablespoon tomato paste (16 g)
  • 1 tablespoon soy sauce (15 ml)
  • 1 teaspoon Dijon mustard (5 g)
  • ½ teaspoon ground allspice (1 g)
  • ¼ teaspoon ground nutmeg (about 0.5 g)
  • ½ teaspoon fine salt (3 g), plus more to taste
  • ¼ teaspoon ground black pepper (about 0.5 g)
  • ¾ cup vegan panko breadcrumbs (45 g)
  • 1 tablespoon vegan butter (14 g), for the gravy
  • 2 tablespoons all-purpose flour (16 g), for the gravy
  • 2 cups vegetable broth (480 ml)
  • ½ cup unsweetened oat cream (120 ml)
  • 1 teaspoon soy sauce (5 ml), for the gravy
  • 1 teaspoon Dijon mustard (5 g), for the gravy
  • ⅛ teaspoon ground black pepper (about 0.25 g), for the gravy
  • 1 teaspoon lemon juice (5 ml), or to taste
  • 2 tablespoons chopped fresh parsley (about 8 g), optional, to serve

Instructions

  1. Set up the oven and binder. Heat the oven to 425°F (220°C). Line a rimmed baking sheet with parchment and brush it with 1 teaspoon olive oil. Stir the ground flaxseed and water together in a small bowl and let the mixture stand for 5 minutes, until thickened. This flax mixture helps hold the meatballs together without egg.
  2. Cook the mushrooms and aromatics. Warm 1 tablespoon olive oil in a large skillet over medium heat. Add the mushrooms and onion and cook for 9 minutes, stirring often, until the mushrooms have released their moisture and the pan looks mostly dry. Stir in the garlic and cook for 30 seconds, just until fragrant. Transfer the mixture to a plate and let it cool briefly so it is easier to handle.
  3. Make the meatball mixture. Put the drained lentils in a large bowl and mash them with a fork until most are broken down but some texture remains. Stir in the mushroom mixture, tomato paste, 1 tablespoon soy sauce, 1 teaspoon Dijon, allspice, nutmeg, salt, pepper, breadcrumbs, and the flax mixture. Mix until evenly combined. The mixture should hold together when pressed; if it feels wet, add breadcrumbs 1 tablespoon at a time.
  4. Shape and chill. With lightly damp hands, roll the mixture into about 20 balls, each roughly 1½ inches (4 cm) across. Set them on the prepared baking sheet with a little space between each one. Refrigerate for 15 minutes so the binder and breadcrumbs can firm up. Do not skip this step if the mixture feels soft; chilling makes the balls easier to handle and less likely to crack.
  5. Bake until browned. Bake the meatballs for 22 minutes, turning them gently halfway through. They should feel firm and have browned patches on the outside. Avoid crowding the pan, since space allows moisture to escape and helps the surfaces brown rather than steam. If your oven has hot spots, rotate the sheet when you turn the meatballs.
  6. Start the gravy. After the meatballs come out of the oven, melt the vegan butter in the same skillet over medium heat. Whisk in the flour and cook for 1 minute, stirring continuously, until the mixture looks smooth and lightly golden. Gradually whisk in the vegetable broth, a little at a time at first, to prevent lumps. Add the oat cream, 1 teaspoon soy sauce, 1 teaspoon Dijon, and ⅛ teaspoon black pepper.
  7. Simmer the gravy. Bring the sauce to a gentle simmer, whisking frequently, and cook for 10 minutes. It should thicken enough to coat the back of a spoon. Stir in the lemon juice and taste before adding salt; broth and soy sauce vary in saltiness. If the gravy becomes thicker than you like, whisk in a splash of broth or water.
  8. Finish and serve. Carefully add the baked meatballs to the skillet and turn them in the gravy. Simmer together for 3 minutes, just long enough to warm and coat them. Serve promptly with parsley if using. For the best texture, lift the meatballs gently with a spoon rather than stirring vigorously.

Tips

  • Keep the lentils fairly dry. Drain canned lentils thoroughly and blot them with a clean towel if they seem wet. Excess moisture can make the mixture loose and the finished meatballs soft. Brown or green lentils hold their shape better than red lentils, which tend to break down into a puree.
  • Use a light touch when mashing. The mixture needs enough broken lentils to bind, but a completely smooth puree can turn dense. Leave some lentils intact, then mix in the crumbs until the mixture just holds together. If it crumbles when rolled, mash a little more; if it sticks heavily to your hands, add a small amount of panko.
  • Choose a suitable cream and broth. Unsweetened oat cream gives the sauce a rounded, creamy texture. Unsweetened soy cream is a good substitute. Unsweetened oat milk can work, but the gravy will be thinner; simmer it a little longer or use slightly less broth. Check that the broth and Dijon are vegan if needed.
  • Do not rush the browning or chill. The mushroom pan should be mostly dry before you add the garlic, or the mixture may carry too much moisture into the meatballs. Chilling the shaped balls helps them keep their form, while turning them carefully halfway through baking gives them color without breaking them.

Serving Suggestions

For a classic-style plate, serve the meatballs and plenty of gravy over creamy mashed potatoes, with steamed green beans or peas on the side. Boiled potatoes are another simple choice, especially when you want something less rich. The sauce also works well over egg-free or regular noodles, wide ribbon pasta, or rice; if serving a mixed table, label the noodles if they contain egg so guests can choose easily.

A spoonful of lingonberry preserves is a familiar Swedish-style accompaniment, offering a tart-sweet contrast to the savory gravy. Lingonberry jam can be difficult to find, so cranberry sauce or red currant jelly is a practical substitute; both are generally sweeter, so use a small spoonful and taste alongside the dish. A crisp cucumber salad or lightly dressed cabbage adds freshness. Keep extra gravy warm on the side if the meal includes potatoes or noodles, since they absorb sauce as they sit.

Variations

For a gluten-free version, use certified gluten-free panko, replace the all-purpose flour in the gravy with an equal amount of a gluten-free all-purpose blend, and choose tamari instead of soy sauce. Check the broth and mustard labels as well. Gluten-free crumbs can absorb liquid differently, so add them gradually and stop as soon as the mixture holds its shape.

For deeper savory flavor, replace up to half of the lentils with finely chopped walnuts or cooked, finely chopped brown rice. Walnuts add a richer, slightly nutty texture; rice makes the meatballs softer and less earthy. Keep the total amount of filling close to the stated cup of lentils and adjust the panko only as needed. You can also add 1 teaspoon nutritional yeast (about 3 g) to the mixture for a more savory note, though it is optional and not a traditional ingredient.

If you prefer a stronger spice profile, increase the allspice to ¾ teaspoon, but keep the nutmeg modest so it does not overpower the mushrooms. For a brighter gravy, add another teaspoon of lemon juice at the end. A splash of unsweetened plant milk can replace a little broth if you want a milder, creamier sauce, while extra broth makes it lighter and easier to spoon over a large serving of potatoes.

Storage and Reheating

Refrigerate the meatballs and gravy within 2 hours of cooking. Store them together in a covered container for 3–4 days. The meatballs soften somewhat as they sit in the sauce, but the flavor remains pleasant. For the best texture, keep them separate from mashed potatoes, noodles, or other sides and store those in their own containers.

Reheat a portion gently in a covered skillet over low to medium-low heat, stirring the sauce carefully and adding a tablespoon or two of broth or water if it has thickened. Reheat leftovers to 165°F (74°C), checking the center with a food thermometer. In a microwave, cover the dish loosely, heat in short intervals, and stir the gravy between intervals so it warms evenly. Avoid a hard boil, which can make the sauce split or the meatballs fall apart.

To freeze, cool the meatballs and gravy promptly, then pack them in a freezer-safe container with room for expansion. Freeze for up to 2 months for best quality. Thaw overnight in the refrigerator and reheat as described above, adding a little broth if needed. Freezing the meatballs before adding gravy is also an option if you have room on a tray; transfer them to a sealed container once firm, then bake from frozen until hot throughout and make the gravy fresh.

Frequently Asked Questions

Can I use canned lentils?
Yes. Drain them very well and pat them dry before measuring 1 cup (200 g). Canned lentils can be softer than home-cooked ones, so handle them gently and add the panko gradually. If the mixture still feels too loose to roll after mixing, add another tablespoon of breadcrumbs and chill it before shaping.

Can I make the meatballs ahead?
Yes. Shape them, cover the tray, and refrigerate for up to 24 hours before baking. You can also make the gravy a day ahead and refrigerate it separately. Reheat the gravy gently with a splash of broth, then add the freshly baked meatballs. The recipe’s stated total time includes the 15-minute chill, but not advance storage.

Why are my vegan meatballs falling apart?
The mixture may be too wet, the lentils may not be mashed enough to help bind it, or the balls may have been handled before they firmed up. Drain the lentils well, mash most of them while leaving some whole, and use the 15-minute chill. If the mixture is still fragile, mix in panko a tablespoon at a time rather than adding a large amount at once.

Can I pan-fry the meatballs instead of baking them?
Yes, though they need gentle handling. Heat a thin layer of oil in a wide skillet over medium heat and cook the balls in batches, turning them carefully until browned on several sides and hot through. Do not crowd the pan, and give each batch room to turn. Baking is easier for a full batch and uses less oil; pan-frying gives a more direct browned crust.

What can I use instead of oat cream?
Unsweetened soy cream is the closest straightforward swap. Unsweetened, unflavored coconut cream can work, but it may add a noticeable coconut aroma. For a lighter option, use unsweetened oat or soy milk and simmer the gravy until it reaches the consistency you want. Avoid sweetened or vanilla-flavored plant milk, which will make the sauce taste unlike a savory gravy.

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