Make these vegan meatballs once and you’ll add the recipe to your regular dinner rotation. They’re hearty, comforting, and full of flavor. They hold together beautifully, brown well, and work well on spaghetti and in sub sandwiches. The texture is meaty without being mushy, and the seasoning is bold but balanced.
Best of all, they’re simple enough for a weeknight and impressive enough for guests. If you’ve tried vegan meatballs before and found them bland or crumbly, this version will change your mind.
Vegetarian Zen is reader-supported. When you buy through links on our site, we may earn a monetary commission. Additionally, the information presented is for educational purposes only. Always consult with your doctor. Learn More.

Why This Recipe Works
- Balanced texture A mix of lentils, mushrooms, oats, and breadcrumbs gives the meatballs a firm bite with just the right amount of moisture. No soggy centers, no dry crumble.
- Umami-rich flavor Tomato paste, soy sauce (or tamari), and mushrooms add depth. Fresh garlic, onion, and Italian herbs round it out for a classic meatball profile.
- Easy to handle Chilling the mixture briefly helps the balls hold shape. A quick bake before saucing locks everything in.
- Versatile base Keep them Italian-style for pasta night, or switch spices for Mediterranean bowls or BBQ subs.
Shopping List
- cooked brown or green lentils
- cremini or button mushrooms
- yellow onion
- garlic
- rolled oats
- breadcrumbs
- ground
flaxseed - tomato paste
- soy sauce or tamari
- olive oil
- Italian seasoning
- smoked paprika
- red pepper flakes (optional)
- fresh parsley
- salt and black pepper
- Marinara sauce
- cooked spaghetti, sub rolls, or grains

Step-by-Step Instructions
Make the flax “egg”
In a small bowl, stir ground
Prep the oats
Pulse rolled oats in a
Sauté the aromatics
Heat 1 tablespoon olive oil in a skillet over medium heat. Add onion and a pinch of salt. Cook 3–4 minutes until translucent. Add garlic and cook 30 seconds, just until fragrant.
Cook the mushrooms
Add chopped mushrooms to the skillet with another pinch of salt. Cook 6–8 minutes until their moisture evaporates and they start to brown. Stir in tomato paste for 1 minute to caramelize slightly. Remove from heat.
Mash the lentils
In a mixing bowl, lightly mash the cooked lentils with a fork or potato masher. Aim for a mix of mashed and whole lentils for texture.
Combine the mixture
Add the mushroom-onion mix, pulsed oats, breadcrumbs, flax mixture, soy sauce/tamari, Italian seasoning, smoked paprika, red pepper flakes (if using), parsley, 1 tablespoon olive oil, and several grinds of black pepper. Add 1/2 teaspoon salt to start.
Mix and adjust Texture
Use clean hands or a spatula to combine. The mixture should be moist but moldable, like firm cookie dough. If too wet, add more breadcrumbs a tablespoon at a time. If too dry, add a splash of water or a drizzle of olive oil.
Chill briefly
Cover and chill 15–20 minutes. This step firms up the mixture and makes rolling easier.
Roll the meatballs
Preheat oven to 400°F (200°C). Line a baking sheet with parchment and lightly oil it. Scoop heaping tablespoon portions and roll into balls, about 1 1/4 inches wide. You should get 18–22 meatballs.
Bake to set
Brush or spray the tops with a little oil. Bake 18–22 minutes, turning once halfway, until golden and firm to the touch.
Finish in sauce (optional)
Heat marinara sauce in a skillet. Add baked meatballs and simmer 5 minutes to soak up flavor. Serve over spaghetti, tuck into subs, or plate with grains and greens.

storage and reheating
Refrigerate in an airtight container for up to 4 days. Store meatballs separately from sauce to preserve texture.
Freeze baked, cooled meatballs on a sheet tray until solid, then transfer to a freezer bag for up to 2 months. Reheat straight from frozen in sauce or in a 350°F (175°C) oven for 12–15 minutes.
Meal prep tip Double the batch. Keep half in the freezer for a no-stress dinner later.
Why This is Good for You
- Protein and fiber Lentils bring
plant-based protein and fiber that keep you full and support digestion. - Lower in saturated fat Compared to traditional meatballs, these are lighter on the heart while still delivering satisfying flavor.
- Micronutrients Mushrooms add B vitamins and minerals; oats offer beta-glucan fiber; parsley adds vitamin K and freshness.
- Smarter sodium You control the salt. Using low-sodium tamari and a simple marinara keeps things in check.
What Not to Do
- Don’t skip the moisture cook-off If you don’t cook mushrooms long enough to release moisture, the mixture can turn soggy and won’t hold together.
- Don’t over-purée Fully blending the mix leads to paste-like meatballs. Keep some texture for a meaty bite.
- Don’t skip chilling Rolling is much easier after a short chill. It prevents cracks and crumbles.
- Don’t drown them in sauce right away Bake first to set the exterior. Then sauce. This keeps them sturdy.
- Don’t forget seasoning Under-seasoned plant-based mixtures can taste flat. Taste and adjust salt, herbs, and acid (a splash of lemon to your sauce helps).
Alternatives
- Gluten-free Use certified GF oats and breadcrumbs. Tamari instead of soy sauce. Everything else stays the same.
- Nutty boost Add 1/4 cup finely chopped walnuts for extra richness and texture.
- Bean swap Use black beans or chickpeas instead of lentils. Drain well and pat dry; you may need extra breadcrumbs for binding.
- Herb switch Try oregano and fennel seeds for Italian sausage vibes, or cumin, coriander, and parsley for a Mediterranean angle.
- No mushrooms Replace with finely grated zucchini (squeeze out water) or minced eggplant (sauté until dry). Adjust breadcrumbs as needed.
- Air fryer Cook at 375°F (190°C) for 10–12 minutes, shaking once, until browned and firm.
- Oil-free Sauté with water or vegetable broth and skip the oil. The texture will be slightly less rich but still tasty.

These vegan meatballs bring comfort-food energy with plant-powered ingredients. They’re easy to make, freezer-friendly, and versatile enough for pasta, bowls, or sandwiches. With a few smart steps—cooking off moisture, using the right binders, and baking to set—you’ll get meatballs that hold together and taste amazing. Keep this recipe in your rotation and customize the seasoning to match your mood.
Simple, hearty, and weeknight-friendly—exactly what dinner should be.
Love this recipe? Check out our full collection of vegetarian and vegan recipes for more delicious ideas! And if you’re looking to share your creations (or get inspired by someone else’s), join our closed Facebook Group, The Peas and Carrots Society, a group of non-judgy folks who welcome all! Nothing but good food, good friends, and good fun!
To up your cooking game, consider becoming a member of the Rouxbe Online Cooking School. I’ve taken two of their courses and LOVED them!
- Have the world's leading online culinary school at your fingertips with unlimited access to membership courses, all lessons, and hundreds of recipes.
- Receive chef support from renowned chef educators and hands-on assessments to practice your newly developed technique. With over 590,000 students worldwide we are teaching the world to cook – the right way!
Vegan Meatballs
Ingredients
- 2 tablespoons ground flaxseed
- 5 tablespoons water
- 1/2 cup rolled oats
- 1 tablespoon olive oil plus more for brushing
- 1 small yellow onion finely chopped
- 3 cloves garlic minced
- 8 ounces cremini or button mushrooms finely chopped
- 1 tablespoon tomato paste
- 1 1/2 cups cooked brown or green lentils canned & drained is fine
- 3/4 cup plain or panko breadcrumbs
- 1 tablespoon soy sauce or tamari
- 2 teaspoons dried Italian seasoning
- 1/2 teaspoon smoked paprika
- 2 tablespoons fresh parsley chopped
- 1/2 teaspoon salt plus more to taste
- 1/4 teaspoon red pepper flakes optional
- black pepper to taste
- Marinara sauce for serving
Instructions
- In a small bowl, stir ground flaxseed with water. Let it thicken for 10 minutes. This helps bind the meatballs without eggs.
- Pulse rolled oats in a blender or food processor until they resemble coarse crumbs, not flour. Set aside.
- Warm 1 tablespoon olive oil in a skillet over medium heat. Add onion and a pinch of salt. Cook 3–4 minutes until translucent. Add garlic and cook 30 seconds, just fragrant.
- Add chopped mushrooms to the skillet with another pinch of salt. Cook 6–8 minutes until their moisture evaporates and they start to brown. Stir in tomato paste for 1 minute to caramelize slightly. Remove from heat.
- In a mixing bowl, lightly mash the cooked lentils with a fork or potato masher. Aim for a mix of mashed and whole lentils for texture.
- Add the mushroom-onion mix, pulsed oats, breadcrumbs, flax mixture, soy sauce/tamari, Italian seasoning, smoked paprika, red pepper flakes (if using), parsley, 1 tablespoon olive oil, and several grinds of black pepper .Add 1/2 teaspoon salt to start.
- Use clean hands or a spatula to combine. The mixture should be moist but moldable, like firm cookie dough. If too wet, add more breadcrumbs a tablespoon at a time. If too dry, add a splash of water or a drizzle of olive oil.
- Cover and chill 15–20 minutes. This step firms up the mixture and makes rolling easier.
- Preheat oven to 400°F (200°C). Line a baking sheet with parchment and lightly oil it. Scoop heaping tablespoon portions and roll into balls, about 1 1/4 inches wide. You should get 18–22 meatballs.
- Brush or spray the tops with a little oil. Bake 18–22 minutes, turning once halfway, until golden and firm to the touch.
- Heat marinara in a skillet. Add baked meatballs and simmer 5 minutes to soak up flavor. Serve over spaghetti, tuck into subs, or plate with grains and greens.
FAQ
How do I stop vegan meatballs from falling apart?
Use proper binders and manage moisture. The flax “egg,” oats, and breadcrumbs work together to hold things. Make sure the mushrooms are cooked dry, the mixture is chilled, and the balls are baked before saucing.
Can I make the mixture ahead?
Yes. The mixture can be made up to 24 hours in advance and kept covered in the fridge. Roll and bake when you’re ready, adding a minute or two to account for the colder mix.
What if I don’t have a food processor?
No problem. Mash lentils with a fork or potato masher, finely chop everything else, and use rolled oats as-is or crush them in a bag with a rolling pin. The texture will still be great.
Do these taste like meat?
They don’t taste exactly like beef, but they hit similar savory notes and have a satisfying, meaty texture. The umami from mushrooms, tomato paste, and soy sauce makes them deeply flavorful.
Can I pan-sear instead of baking?
Yes, but handle gently. Heat a thin layer of oil in a nonstick skillet over medium and cook, turning to brown all sides, about 8–10 minutes. Finish with a brief simmer in sauce.
What sauce pairs best?
Classic marinara is a win. They’re also great with spicy arrabbiata, creamy tomato basil (dairy-free), or a garlicky lemon herb sauce for a lighter option.
How many does this serve?
About 4 servings as a main with pasta or salad, depending on appetite. If serving in subs, expect 2–3 meatballs per sandwich.






