These delicious vegan Swedish TVP meatballs are incredible in flavor, high-in-protein, super healthy and have an amazing meaty texture that makes for a very satisfying meal. They are smothered in a rich umami-flavored gravy sauce and at their best when served over mashed potatoes or noodles. Welcome to the ULTIMATE vegan comfort food recipe!

Have you checked out this vegan onion gravy yet? A luscious brown sauce that will make you lick your spoon? I simply could not wait to share my favorite way to use this recipe!
So here you go: welcome to these Ikea-inspired drool-worthy Vegan Swedish TVP MeatbalIs! Crispy and hearty balls drenched in a creamy and flavor-packed sauce. Every bite feels like a dream!
Ok, I did say Ikea-themed recipe, but I actually ate a Quebec-style gravy meatballs dish often growing up that's very similar to this European recipe, so this feels right up my alley. They are flavored with spices and have a cozy and holiday-ish vibe to them. So needless to say that I am quite eager to share this recipe on the blog!
And what's amazing is how hard it is to tell that this version is completely vegan. They are made using TVP (Textured Vegetable Protein) and black beans that provide a very meaty texture to these vegetarian meatballs. There is no compromise on texture or taste, plus they are very healthy and will make you feel full for hours!

Vegan TVP meatballs, Swedish style
We all know what meatballs are, but how about having a Swedish version? If you have been to Ikea, then you might have a good idea: they are roasted small-ish meatballs with aromas of nutmeg (and often all-spice) and covered in a rich cream sauce. Usually served with mashed potatoes, green veggies and traditionally with a side of lingonberry jam.
In this case, they are obviously made vegan, but instead of using a sauce made with heavy dairy cream, we will use my homemade vegan onion gravy. You can add a splash of vegan cream for a creamier twist, but I find that blending the onion gravy creates an amazing rich sauce for the meatballs in such a healthier way.
Why you will love this recipe
- Healthy, high-in-fiber and low-in-fat.
- Packed with high quality plant protein.
- Dairy-free, meat-less and egg-free.
- Easy to make gluten-free.
- Can be prepared ahead, perfect for meal-prep during the holidays.
- Amazing in texture with a satisfying meaty feeling, which vegans AND non-vegans will love!
- Ultimate comfort food!
Ingredients you'll need
- TVP (Textured Vegetable Protein): rich-in-protein and provides amazing meaty texture.
- Canned black beans: essential to help the mixture stick into meatballs, but also adds more fiber and protein to the recipe.
- Sesame seeds: they create such a nice pop and add texture.
- Walnuts: they stay crunchy and help create a more meaty/hearty feeling to the no-meat balls.
- Flax seeds and breadcrumbs: binder, help the balls hold well together.
- Onions: for flavor, they are incorporated raw, but will cook slowly when roasting the balls and add a nice punch of flavor.
- Flavoring ingredients: Soy sauce, nutmeg, cinnamon, nutritional yeast.
- Plus one batch of this easy vegan onion gravy (or your favorite gravy).

What is TVP and where to find it?
TVP stands for 'Textured Vegetable Protein'. It contains the word vegetable, but is actually a by-product from soy during the making of soybean oil.
It is rich in protein, high-in-fiber and very low in fat (the fat was removed to make the soybean oil!). It is a highly processed ingredient, but also rich in nutrients! Essentially, once the oil is extracted from the soybeans, then what's left is then dried to make TVP.
You can find it in different forms, from small flakes to larger chunks. Because it is a dry product, it needs to be rehydrated before using in recipes. You can find it easily online, but also in most grocery stores. I used the TVP from Bob's Red Mill.
It is actually quite inexpensive too, which makes it a great addition in your kitchen if cooking on a budget. Also has an amazing meaty texture, which is great for all these hearty no-meat vegan dishes, likes tacos, chili, burgers, etc.

How to make them: Step-by-Step
Step 1- Preparing the ingredients
Transfer the TVP in a medium bowl, add the soy sauce, warm water and stir. Let it sit until ready to use, about 10 minutes.
Then, mash the black bean to a coarse texture using a fork.
Finally, shred the onions. I like to use a boxed grater (onion-tears-alert), but you might be able to also use your food processor for this. Be sure to measure ⅓ cup of the shredded onion and discard/store the remaining.
Step 2- Combine and shape the balls
In a medium bowl, combine the soaked TVP (including the soaking water, if any unabsorbed), mashed black beans, shredded onion alongside all the remaining meatballs ingredients. Stir well, you want the mixture to be very uniform and be sure to break the shredded onion clumps.
Then, using about 1.5-2 tablespoons of mixture at the time, shape about 20 balls. You will have to press the mixture first to squeeze the ingredients against each other and make it more sticky. Then, roll in between your hands.
Step 3- Pan-roast the vegan meatballs (oven-baked option below)
Warm up a large pan on medium heat (with or without oil, use non-stick pan for no-oil). Then, add the meatballs (spaced out) and brown for a few minutes on each side. You will have to leave them alone for a few minutes before rolling/flipping so they actually have enough time to brown nicely. Lower your heat to low-medium if it tends to get too dark too quickly. This process takes 15-20 minutes depending on the heat level.
Step 4- Make the gravy
While the meatballs are roasting, prepare the vegan onion gravy. Once done, I prefer to blend the gravy when making these Swedish meatballs (it does create a more creamy texture, without cream), but feel free to leave the onions pieces intact too. As a side note, if you love mushrooms, then don't hesitate to use this vegan mushroom stroganoff instead of the gravy!
Step 5- Finish up
Once the meatballs are roasted and the gravy is done, then simply pour the gravy over the meatballs and stir to combine. At this point, you don't need to cook much longer, simply combine and warm up for 1-3 minutes and it is done!
I like to roast the meatballs in the pan + make the gravy in a medium pot both in tandem, which I find it to be a better use of my time. But, you could also first roast the meatballs, remove them from the pan, then make the gravy in the same pan, then transfer the meatballs back to the sauce.






Watch how to make them

Oven-baked directive
You can easily bake these vegan TVP meatballs:
- Pre-heat the oven to 350º and line a baking sheet with parchment paper.
- Then, simply make the meatballs as directed.
- Place the meatballs on the prepared baking sheet and bake in the pre-heated oven for 35-40 minutes, flipping once or twice.
- Make the gravy in a medium pot and simply transfer the baked meatballs to the pot and combine. Alternatively, you can pour some gravy over the meatballs on your serving plate.
Cooking tips
- I love to use my mini ice cream scoop to make these meatballs. Mine holds 0.75 oz or 1.5 tablespoons, which I make sure to generously pack.
- When shaping the balls, press the mixture tight in between your fingers and you will see, it should get very sticky. Then, roughly shape it in a ball and roll to smooth out the surface.
- After shaping a few balls, you might want to rinse your hands to remove the mixture that sticks to it. It is easier to roll the balls when your hands are clean (and even a little humid).
- Use a large pan! You want to space out the balls so they roast nicely (they might steam if too close to each other).
- Keep your heat on low-medium, so they can brown without burning while giving enough time to the balls to cook through the middle.
- The gravy can thicken pretty quickly after added to the pan, so if you need to thin it out, then add a splash of broth/water and whisk.

Make gluten-free Swedish meatballs
These vegan TVP meatball are easy to make completely gluten-free. TVP is naturally free of gluten, but to make these meatballs fit with your diet:
- Swap soy sauce for gluten-free tamari
- Use gluten-free breadcrumbs
Variations
I always try to keep the ingredients list as short as I can, but here are a few other things you can do:
- Add a pinch of clove or all-spice.
- A dash or two of Worcestershire sauce would add even more flavor!
- Add some dijon mustard to the gravy once thickened, about ½ teaspoon to start with and taste to add more if needed.
- If you use a plain coffee creamer for your morning coffee, then add some after the gravy is done. It would make the sauce richer, but be sure it is not flavored or sweetened. I tested with an extra splash of this Nutpod Vegan creamer and it was very yummy!

Serving suggestions
The best way to enjoy these meatballs are either over mashed potatoes or cooked noodles. It would go amazingly with this white bean mash too. Also great with a side of dinner rolls or over rice. (oh hello, carb-lovers). They make for an amazing vegan recipe for Thanksgiving, Christmas or New year celebration!
Add a side of green veggies, like green beans, green peas or broccoli. If you have any, also sprinkle some chopped fresh parsley and plenty of ground black pepper. If serving this dish for the holidays, pair it with a fresh cranberry orange mocktail!
And for a classic Swedish meal, then be sure to add a side of pickled cucumbers and lingonberry jam!
Storage tips
Store any leftovers in a air-tight container for up to 4-5 days.
They store better when the meatballs and gravy are kept apart from each other, so if you expect some leftovers, then combine only the meatballs with the gravy that you will eat during that meal, then store the rest in 2 separate containers.
Simply warm up on the stove or in the microwave. If you were able to keep the leftover meatballs apart from the gravy, then heating them up in a pan will revive some of the crispiness.
You can also freeze the roasted meatballs (without the gravy) for up to 6 months and let them thaw in the fridge overnight. Freeze them on a baking sheet (not touching each other) and then, once frozen, transfer to a container for longer storage. This way, you can grab a few at the time. Re-heat in a pan.
How to make them ahead
You can combine the mixture and shape the meatballs ahead of time. Then transfer the uncooked balls in the fridge until ready to eat (cover so they don't dry out). Also prepare the gravy ahead, let it cool down at room temperature and store in the fridge apart from the meatballs.
Then, when ready to eat, simply continue the recipe where you left it. You might have to loosen up the gravy with more broth/water as it tends to thicken after being in the fridge.

Other vegan comfort food favorites
- Vegan baked ziti
- Vegan tikka masala
- Mushroom and corn stroganoff
- Vegan garlic pasta bake
- Mexican style Baked Potato
- Vegan white bean chili
- Lentil shepherd's pie
- Jackfruit chili
- Vegan American goulash
- Mashed purple sweet potatoes
- Vegan lentil meatloaf
I hope you enjoy these vegan meatballs as much as we do! If you try them, please leave a comment below and rate the recipe to let me know how they were. Your feedback is so helpful!
Let's stay in touch with Instagram, Pinterest and Facebook. Also, don't forget to subscribe to my newsletter to be sure not to miss anything.

Vegan Swedish TVP Meatballs (with Black Beans)
Ingredients
For the TVP Meatballs
- 1 cup textured vegetable protein (TVP) - + ¾ cup of warm water
- 1 cup canned black beans - well drained and mashed
- 2 tbsp soy sauce
- ⅓ cup yellow onion - shredded
- ½ cup walnuts - roughly chopped
- 2 tbsp sesame seeds
- 2 tbsp nutritional yeast
- 1 tbsp ground flax seeds
- ¼ cup breadcrumbs
- ⅛ tsp ground cinnamon
- ⅛ tsp ground nutmeg
For the gravy
- 1 batch of vegan onion gravy - see below to get the recipe
Instructions
- Add the TVP to a medium bowl and pour over ¾ cup of hot water with the soy sauce. Let sit for 10-15 min. While the TVP is soaking, mash the black beans to a coarse texture using a fork and shred the onion.
- Transfer the soaked TVP (alongside with all the soaking water), the mashed black bean and the shredded onion to a medium large bowl. Add the rest of the meatball ingredients and stir well to create a uniform mixture. It should be sticky and hold together if pressing the mixture together in between your fingers.
- Using about 1.5-2 tablespoon of mixture at the time, shape 20 balls by first pressing the mixture in your hands and then, rolling to smooth. Transfer on a plate and keep going until you used all of the mixture.
- Warm up a large pan on medium heat (you can also warm up a small amount of oil, if desired, or use a non-stick pan for oil-free) and roast the balls for a few minutes on each side. Move them around or flip them only when browned so it creates more texture and flavor. Keep the heat on low-medium and roast until all sides are browned, about 20 minutes total.
- While you are roasting the meatballs, make the onion gravy in a medium pot. When the gravy is done, transfer to a blender and blend until smooth.
- When the meatballs are done roasting, pour the blended gravy right into the pan and warm up for a few minutes. Adjust the texture by adding extra broth as needed and stir.
- Serve immediately over mashed potatoes or cooked noodles with a side of green veggies.
How to oven-bake the meatballs
- You can also cook the meatballs in the oven at 350º on a parchment paper covered baking sheet for about 35-40 minutes, flipping once or twice.
Video
Notes
- Rinse/clean your hands once in a while when rolling the balls. If your hands are covered with some of the mixture, then if it will be harder to roll to a smooth texture as they will stick to them.
- Use a large pan to roast the meatballs: they will roast better that way and avoid steaming.
- The gravy tends to thicken quickly once chilled or once added to the pan. If too thick, then add a splash of broth or water and whisk to loosen it up.
- Store any leftovers in the fridge for up to 4-5 days. They store better when the meatballs are kept apart from the gravy. Can also be frozen for up to 6 months. To prevent them from sticking to each other, placed the roasted meatballs on a parchment lined baking sheet and transfer to the freezer. Once frozen, transfer to a container so you can only grab a few at the time. Thaw overnight in the fridge, then re-heat in a pan or using the microwave.
Pin it for later!

I made these tonight and they were delicious. It's the first time I used the TVP. It was easy to work with. The gravy is so good. The caramelized onions really give it good flavor. I'll be cooking this one again! Thank you, Jess.
Very good. Takes a little time to prepare, but totally worth it. I have served the TVP balls with a jarred tomato sauce and it is good.
Hi Maggie, thanks for your comment, I'm glad you like them!