
I have experimented with a number of different ingredient combinations for vegan meatballs and have never been satisfied with them. This vegan meatball recipe however, finally fulfills my desire for a moist and flavourful plant-based meatball. The mixture is cooked all in one pan and then the "meatballs" can be pan fried or baked!
Easy to prepare
Soft and moist "meatballs" that hold up in sauce
Full of flavour, protein & fibre
Makes enough to freeze

Ingredients For Vegan "Meatballs"
I had actually never cooked with TVP before creating this recipe. I tend to work from a small list of simple pantry staples for my recipes in an effort to make them as accessible as possible. However, so many of our YouTube viewers requested recipes using TVP that they finally convinced me to pick up a package and try it out.
The bulk of this vegan meatball recipe is made from TVP (textured vegetable protein) and split red lentils.
If you are also new to using TVP you can check out this Healthline article "What Is TVP?". It explains that although it is called "textured vegetable protein" it is most commonly made from soy. The dehydrated nuggets are made up of "defatted soy" and are a byproduct of making soybean oil. It is a popular vegetarian meat-substitute that is high in protein, a good source of fibre, and generally considered to be a cost effective meat alternative.

Besides the TVP and split red lentils you will only need:
- Vegetable broth.
- Tamari or soy sauce for saltiness and depth of flavour.
- Nutritional yeast for cheesy depth of flavour in the absence of parmesan.
- Ground basil, salt, and fresh parsley if you have it!
- And finally, breadcrumbs to bind the meatballs together.
Method
TVP is quite simple to cook. It needs to be rehydrated in water or broth for 5-10 minutes and then cooked for 5-10 minutes. Instead of rehydrating it on its own, I decided to combine it with split red lentils which also cook in about 10 minutes. This diversifies the protein source, adds bulk to the recipe, and helps the meatballs to bind.
- Start by sautéing onion and garlic.
- Add the TVP, split red lentils, broth, and tamari (or soy sauce).
- Bring to a boil, lower to a simmer, and simmer with the lid on for 10-15 minutes.
- Remove from the heat and stir in the remaining seasonings & breadcrumbs.
- Scoop heaping tablespoons and roll the mixture into 1.5 inch balls.
- Pan fry or bake the meatballs for 20 minutes at 400 F.

How To Freeze This Vegan Meatball Recipe
It was important for me to create a recipe for you that made enough "meatballs" for you to freeze some.
- Bake the meatballs at 400 F for 20 minutes, turning halfway through.
- Allow the meatballs to cool fully.
- Arrange in a single layer on a lined sheet pan and put the whole pan in the freezer for 1-2 hours.
- Once the meatballs are fully frozen, transfer them to a freezer safe bag or container for longer storage. They will last well for 2-3 months (or more) if stored properly.
To cook the meatballs from frozen:
- Pan fry until fully defrosted and browned around the edges. I just brush a thin layer of oil on my pan. Be cautious of splashing if too much oil is used. When the water from the frozen meatballs comes in contact with the hot oil it will splash.
- Bake at 350 F for 25-30 minutes, turning halfway through.
- Alternatively, air fry at 350 F for 15 minutes.
Recipe Cost
This vegan "meatball" recipe makes 40-42 1 oz meatballs and costs me just over $8 Canadian.
In order to make 40 traditional 1 oz meatballs I would need 2 pounds of ground meat. At the time of writing this, ground beef from my local grocery store is $10 per pound! That would be $20 just for the meat. I have not double checked the price at my wholesale store lately but I would think it would be about half of the local grocery store price. That would still be $8-$10 for just the meat.
I was pleased to learn that, once again, this recipe proves my theory that cooking plant-based meals doesn't have to be more costly than eating a traditional diet!

If you love this recipe you might also love my popular Red Lentil Ragu! My Simple Vegan Lasagna with Lentil "Meat" is another crowd favourite!
Let me know in the comments if you try this vegan meatball recipe and how you like it! We love receiving your 5 star reviews!
Print
Vegan "Meatballs" with TVP & Red Lentils
- Total Time: 65 minutes
- Yield: 40-42 1x
- Diet: Vegan
Description
A delicious vegan meatball recipe that is easy to prepare, full of flavour, and makes enough to freeze! Pan fry or bake until golden!
Ingredients
- 1 medium yellow onion, minced (can use red onion)
- 6 cloves garlic, minced
- 1 ½ cup TVP (dry, 150 g)*
- ¾ cup split red lentils (rinsed, 144 g dry)
- 4 cups vegetable broth (homemade for the best savings)
- ¼ cup tamari or soy sauce
- 3 tbsp nutritional yeast
- 3 tsp dried basil
- ½ tsp salt (if using store-bought broth you may be able to omit the extra salt)
- ¼ cup fresh parsley, chopped (optional, about 10 g)*
- 1 ¼ cup breadcrumbs (98 g, I use panko but Italian should work)
*Ingredients you need that are not part of our pantry and freezer tips.
Instructions
- In a large sauté pan, heat a dash of oil, water, or broth. Sauté minced onion for 3 minutes until softened and fragrant. Season with salt and pepper. Add the minced garlic and sauté for another two minutes until fragrant.
- Add the dry TVP, rinsed red lentils, broth, and tamari. Bring the broth to a boil, reduce to a simmer, and simmer with the lid on for 10-15 minutes until nearly all of the broth has been absorbed and the lentils are cooked.
- Turn off the heat and add the nutritional yeast, basil, salt, and parsley (or any other chopped fresh herbs you are using). Finally, stir in the breadcrumbs.
- When cool enough to handle, scoop a heaping tablespoon or cookie scoop amount of the mixture and roll it into a ball between your palms. To get 40-42 meatballs I make them about 1 ½ inch in diameter and 1 oz in weight.
- To pan fry: brush your pan with olive oil and fry the meatballs for about 2 minutes on each side until nicely browned. Remove them from the pan, heat your sauce, and add the meatballs back in before serving.
- To bake: arrange on a parchment lined sheet pan and bake at 400 F for 20 minutes turning halfway through. (Alternatively, air fry for 10 minutes at 350 F, turning halfway through).
- To freeze: arrange in a single layer on a sheet pan and place in the freezer for 1-2 hours until frozen. Transfer to a freezer safe bag or container for longer storage. Cook from frozen on a frying pan or bake at 350 F for 25-30 minutes, turning halfway through. Air fry frozen meatballs at 350 F for 15 minutes, turning halfway through.
- Serve with your favourite pasta and sauce. Garnish with fresh parsley or basil and my Quick Vegan "Parmesan Cheese"!
Notes
Approximate Cost: Just over $8 Canadian without fresh parsley vs $20 for 2 lbs of ground beef from my local grocery store and around $8-$10 for 2 lbs ground beef from my wholesale store.
Feel free to use gluten-free breadcrumbs if needed. About ¼ cup of psyllium husk powder could serve as an alternative gluten-free binder but I haven’t tried this myself.
I have made this recipe with brown lentils. I actually preferred the taste but the brown lentils don’t get as soft so there were chewier spots in the meatballs. I thought some people might not love that texture so I went with the red lentils. If you want to try this with brown lentils though, you can follow the recipe as written but cook the lentils and TVP for at least 20 minutes.
- Prep Time: 30 minutes
- Cook Time: 35 minutes
- Category: Dinner
- Method: Baking
- Cuisine: Italian





Audrey
So delicious and easy!
While buying the TVP (first time), the checkout clerk asked what I was going to do with it. I mentioned I was going to make “meatballs “, she was very interested. I shared your recipe/site. She told me to let her know if it was any good.
After making about 16 balls I started thinking, maybe I can make a burger patty. You are a very patient person, and appreciate all your effort in preparing these recipes. Anyhow, the burgers were very good.
We had meatballs and pasta for dinner tonight. They were 100% on point!
Thank you for introducing me to TVP!
Kathryn Alexandre
Haha thank you so much for trying them and updating me on how much you liked them Audrey! It's so helpful to know that the mixture held together for burgers because I have had a lot of questions about that and I wasn't sure if the mixture would be too soft to hold up to being flipped with a spatula. (I tend to listen to podcasts as I cook so maybe that's why I didn't mind standing and rolling 40 meatballs!) I really appreciate you sharing our site and this recipe with your checkout clerk! (I often get questions about the ingredients I'm buying too... smoked tofu, tempeh, chickpea flour etc). Thank you so much for such a lovely 5 star review. This means a lot and I'm thrilled you enjoyed your dinner!
Danielle
I LOVED these! Such good flavor and texture. I didn't have gluten free bread crumbs so I used coarsely ground oats with some flax meal. Will definitely make this again!
Kathryn Alexandre
Oh great! It's so helpful to know that you used ground oats and flax instead of the breadcrumbs Danielle. I'm thrilled that you loved these so much and I can't thank you enough for taking the time to come back and leave a great 5 star review!
Brigitte
I just made them and they are delicious. Be aware, I used commercial broth and the mix is very salty even when I omitted the tamari. I will make them with my own unsalted broth next time.
I also added a large spoon of chickpea flour to half of the mixture to make them firmer. I prefer your recipe unchanged because of the texture. The ones with chickpea flour ended up more gummy and not really firmer in the end.
Thanks for the recipe, I enjoyed it and I have plenty more for other meals.
Brigitte
Kathryn Alexandre
Thank you so much for a detailed review Brigitte. I just added a note to the recipe card to omit the extra 1/2 tsp salt after the mixture is cooked if store-bought broth is used. I've used better than bouillon veggie broth for this recipe but I always use half the amount of paste that they recommend because I do always find it too salty. Sodium levels in tamari/soy sauce and pasta sauce brands can vary as well so the saltiness is a good thing to keep an eye on. It's nice to know how your experiment with the chickpea flour went as well. I'm so glad that you enjoyed them and you will have more for leftovers!
Dina
These turned out delicious! I pan fried most of them and air fried the rest. For the air fried version I upped the temp to 400 and added a few extra minutes to get a firmer exterior texture. Everyone thoroughly enjoyed them (me, hubby and 16 year old son) - will definitely make these again and maybe play around with adding a little vital wheat gluten to add some chewiness and help them to hold together just a little more. Thank you for a great recipe!
Kathryn Alexandre
That's a great idea Dina! I'm going to try adding vital wheat gluten too for my next batch and I'll update the recipe card with that note if it works out well. I'm so glad you all enjoyed them and I really appreciate you taking the time to come back and leave a lovely 5 star review!