These vegan meatballs are built on lentils, cremini mushrooms, walnuts, and oats — a combination that holds together, browns properly, and tastes genuinely satisfying. The homemade marinara comes together in about 20 minutes and does real work here, not just decoration. If you’re cooking for people who are skeptical about plant-based food, this is a reliable choice.
What makes this version work
Two things actually matter in this recipe. First, cooking the mushrooms until their moisture is fully gone — not just softened, but dry and starting to stick to the pan. Wet mushrooms make the whole mixture loose, and no amount of extra oats will fully rescue it. Second, chilling the shaped balls before they go into the oven. Cold meatballs hold their shape during baking; room-temperature ones spread and flatten. Give them at least 20 minutes in the fridge. Everything else is flexible, but skip either of these steps and the texture suffers noticeably.
Mistakes to avoid
- Overcooking the lentils. Mushy lentils turn the mixture into a paste. Pull them off the heat while they still have a little resistance — they’ll soften further when the mixture rests and bakes.
- Skipping the walnut toast. Raw walnuts have a slightly bitter edge that comes through in the finished meatballs. Two or three minutes in a dry pan makes a real difference to the overall flavor.
- Crowding the baking sheet. Meatballs touching each other steam instead of brown. Leave space between each one so the outside actually crisps up.
- Adding the meatballs to the sauce too early. They need to finish baking and set up first. Add them to the simmering marinara only for the last five minutes — long enough to absorb flavor, not so long they fall apart.
- Using quick oats instead of rolled oats. Quick oats absorb moisture faster and make the texture gummy. Stick with old-fashioned rolled oats for the right structure.
Smart swaps
- Nutritional yeast: This is worth keeping on hand — it adds savory depth that’s hard to replicate. If you’re out, a teaspoon of white miso stirred into the mixture is a reasonable substitute.
- Cremini mushrooms: Baby bellas work identically. Shiitakes are fine but give a slightly different flavor. Avoid canned mushrooms — too much retained water.
- Walnuts: Pecans work as a swap and toast up similarly. Skip the garnish of extra chopped walnuts on top — not worth the extra dish.
- Gluten-free option: Certified gluten-free rolled oats make this recipe fully gluten-free with no other changes needed.
- San Marzano tomatoes: Any good-quality whole canned tomatoes work. Crush them by hand before adding to the pan for a rustic texture.

Vegan Meatballs with Marinara
Equipment
- Large non-stick skillet
- Food processor
- Baking sheet
- Parchment paper
- Mixing bowls
Ingredients
For the Vegan Meatballs
- 1 cup cooked lentils Green or brown lentils, cooked al dente and drained well
- 1 cup cremini mushrooms Finely chopped
- 3 cloves garlic Minced
- ½ cup rolled oats Gluten-free if needed
- ¼ cup walnuts Lightly toasted for enhanced flavor
- 2 tablespoons nutritional yeast Adds a cheesy, savory flavor
- 2 tablespoons tomato paste
- ½ teaspoon dried oregano
- ½ teaspoon salt Or to taste
- ¼ teaspoon black pepper Freshly ground
For the Marinara Sauce
- 2 tablespoons olive oil
- 1 small yellow onion Finely diced
- 2 cloves garlic Minced
- 1 can crushed tomatoes 28 oz high-quality San Marzano preferred
- 1 teaspoon dried basil
- ½ teaspoon salt Or to taste
- ½ teaspoon sugar Optional, helps cut acidity
Instructions
- Preheat oven to 375°F (190°C). Line a baking sheet with parchment paper.
- In a skillet over medium heat, sauté mushrooms and garlic until most of the moisture evaporates and edges brown slightly, about 8–10 minutes.
- In a food processor, combine cooked lentils, sautéed mushrooms and garlic, oats, walnuts, tomato paste, nutritional yeast, oregano, salt, and pepper. Pulse until the mixture is cohesive but slightly chunky—you want some texture left.
- Shape mixture into 1 1/2-inch balls and place on the baking sheet. Lightly brush or spray with oil for extra crispness.
- Bake for 25 minutes, flipping halfway through for even browning. Meatballs should be firm and golden.
- Meanwhile, heat olive oil in a saucepan over medium heat. Add onion and garlic, and cook until translucent and fragrant, about 5 minutes.
- Add crushed tomatoes, basil, salt, and sugar. Simmer uncovered on low heat for 20–25 minutes, stirring occasionally.
- Add baked meatballs to the marinara sauce and gently spoon the sauce over them. Simmer for 5 minutes to absorb flavors.
Notes
- Ensure the lentils are not overly soft as they can make the mixture too mushy.
- Let the meatball mixture chill in the fridge for 10 minutes before shaping for easier handling.
Nutrition
Common questions
Can I make these meatballs ahead of time?
Yes — they’re actually better made a day ahead. Bake them fully, let them cool, then refrigerate. Reheat directly in the simmering marinara for five minutes before serving, which also deepens the flavor.
Can I freeze them?
Freeze the baked meatballs without sauce for best results. Lay them on a sheet pan to freeze individually first, then transfer to a bag. Reheat from frozen in a 375°F oven for about 15 minutes, then finish in warm marinara.
My mixture feels too wet to shape — what do I do?
Refrigerate it for 30 minutes rather than the minimum rest time. If it’s still too sticky after chilling, add one tablespoon of rolled oats at a time and let it sit another 10 minutes before trying again.
Will these work as a meatball sub?
They hold up well in a sandwich as long as the bread is sturdy — a toasted hoagie roll or a halved baguette works better than soft sandwich bread, which goes soggy fast. Three to four meatballs per sub is the right amount.
More plant-based recipes to try
- Macadamia Nut Pesto Pasta
- Vegan Polenta Mushroom Bliss
- Mediterranean Lentil Power Bowl
- Baked Ratatouille Herb Oil
