Yes, with our tofu meatballs you can have meatballs without the meat. This recipe is quick and easy to make with very simple ingredients. It's cozy, incredibly tasty, and satisfying.
Cook the vegan meatballs on the stovetop or in the oven and serve them with a finger-licking marinara sauce, on spaghetti, in a sub, or simply with some crunchy bread.
On this page:
Check out our best tofu recipe collection!
What to expect
Tofu meatballs are so easy to make and so incredibly satisfying that they quickly became one of our top favorite vegan comfort foods.
They are perfect for an everyday dinner because you can make the mixture in a few minutes, in a food processor, with a few pantry ingredients that you probably already have at home.
They are also so incredibly tasty, healthy, and comforting. And you really can't tell that there's tofu in them.
You can bake the vegan meatballs hands-off in the oven (15 min) or cook them in a skillet on the stovetop (12 min). We recommend serving them with marinara sauce, on pasta, rice, or in a meatball marinara sandwich.
They are also cozy and finger-licking good. Their flavor is perfectly balanced and pleasant. You can't taste the tofu. The texture is compact, not too heavy, and soft.
They are packed with nutrition and protein, so they are fulfilling despite the fact that there's no meat or eggs.
Ingredients and Substitutions
For the tofu meatballs
- Tofu: use firm or extra firm tofu. We recommend squeezing it with your hands to remove some of its water. We do this because the water is tasteless and makes the meatballs less tasty. It doesn't matter if it breaks when you squeeze it as we blend it anyway. It's super easy to do over the sink.
- Olives: they add a subtle flavor and umami (that savory taste) that reminds us of regular meatballs. Olives are a very important ingredient and without them, your tofu meatballs won't taste the same. We use pitted black olives, but any other olives would do. You can replace olives with sun-dried tomatoes in oil.
- Walnuts: to add healthy fats, nutrition, and meatiness to our vegan meatballs. Walnuts are incredibly healthy and this is a good way to eat more of them. You won't really taste the nuts in this recipe, but they do add richness, texture, and flavor. You can replace walnuts with almonds.
- Breadcrumbs: like with real Italian meatballs, we use breadcrumbs to make the balls softer, lighter, and less dense. You can use any type of breadcrumb. We soak them with plant milk to puff them up so that when we mix them with the tofu the meatball mixture is less dense.
If you don't have breadcrumbs you can use stale bread (or slightly toasted fresh bread) and blitz it up in your food processor to make your own breadcrumbs.
- Plant milk: we tried oat milk and soy milk, but my guess is that any would work, as long as it's unsweetened.
- Nutritional yeast: since we like to keep the tofu meatballs vegan, we add some nutritional yeast to add a little more savory and cheesy taste, instead of parmesan cheese. You won't be able to taste nutritional yeast but it just adds a nice savory touch. If you are not vegan, you can replace nutritional yeast with parmesan cheese.
- Cornstarch: to help the meatballs stick together. You can replace it with tapioca starch.
- Onion, garlic, dried oregano, fresh parsley, salt, and pepper: these ingredients build up the flavor of our vegan meatballs. You can use any kind of Italian seasoning for this recipe. I do recommend however always adding one fresh herb like parsley, basil, rosemary, or sage. We find that mixing one dried and one fresh herb really creates a better, more pleasant flavor. Feel free to experiment and add your favorite herbs and spices.
For the marinara sauce
- Olive oil: extra virgin olive oil is at the base of any Italian sauce.
- Onion: finely chopped white or yellow onion. Gently fried in the oil to make "soffritto", or flavor base that will make our marinara delicious.
- Garlic: to make our flavor base even better and tastier.
- Whole canned peeled tomatoes: those are my tomatoes of choice to make a good, rich, dense, marinara sauce. You can use other canned tomatoes such as diced or chopped tomatoes. I am not a huge fan of tomato puree or tomato passata - unless it's homemade - for the marinara sauce as I find it too smooth.
- Salt and pepper: adjust based on your personal dietary preferences. Sea salt and kosher salt are best.
- Oregano: we use dried oregano. You can replace it with dried thyme.
- Basil: we use fresh basil for our tomato sauce. Add it at the end to preserve its delicate aroma.
Start with the marinara sauce
Note: If you prefer to use store-bought marinara sauce then you can skip this and go straight to the next chapter. While the sauce simmers you can make the tofu meatballs.
To a nonstick or to a stainless steel pan add the olive oil and fry the finely chopped onion on medium heat for 3 minutes, stirring occasionally.
In the meantime, finely chop the garlic. I always recommend cutting the garlic lengthwise and removing its core. This makes it more digestible. Then finely chop it and add it to the onion and fry for another minute.
Optionally you can add some dried hot chili pepper or red pepper flakes to make the sauce a little spicy.
Add the whole canned peeled tomatoes. Rinse the can with a cup of water and add it to the pan too.
Crush the tomatoes with a wooden fork then season them with salt, pepper, and dried oregano. Let simmer for about 20 to 30 minutes, depending on how thick you like your marinara sauce.
Tip: while the sauce simmer you can make the tofu meatballs.
A few minutes before turning the heat off, add the basil. Chop it up with your hands, stir and turn the heat off. Taste and adjust for salt and pepper.
Make mixture for tofu meatballs
To a large mixing bowl add the breadcrumbs, salt, and plant milk. Stir with a spoon to distribute the milk and set aside.
Tip: Soaking the breadcrumbs in plant milk makes the bread fluff up and gives our tofu meatballs a lighter, less compact, texture.
Squeeze the tofu over the sink to remove some of its water, then add it to a food processor. It doesn't matter if it crumbles, we are going to blend it in a second.
Tip: we remove the water because tofu water is tasteless and it would dilute the flavor of our meatballs. Squeezing it with your hands over the sink just takes a second.
Add in garlic, onion, chopped parsley, olives, corn starch, walnuts, salt, pepper, oregano, and nutritional yeast.
Blend the ingredients until you have a mixture that you can shape into balls. Don't over-process it, it should only take a couple of minutes.
You might have to stop the food processor from time to time to scrape down the mixture from the edges.
Tip: taste the mixture and adjust for salt, pepper, and herbs. At this stage, the mix should already be kind of tasty.
Transfer the mixture to the mixing bowl with the soaked breadcrumbs. Mix with your hands or with a spatula until the two are fully incorporated.
Shape tofu meatballs
Preheat the oven to 390F or 200C. If you prefer to pan-fry your vegan meatballs you don't have to do that.
For perfectly round tofu meatballs, like the one in the pictures, we recommend using your hands. If you don't care about perfectly round balls, then you can use two spoons to shape them.
Grease your hands with a drop of olive oil. Take a small piece of mixture, and shape it into a ball, rolling it in between the palms of your hands.
Tip: we like small tofu meatballs, of about 20 grams (0.7 ounces) per ball. You can use a scale to be precise. At 20 grams per ball, you can make 24 vegan meatballs.
Oven-baked tofu meatballs
Arrange the meatballs on a baking rack, line with parchment paper, and put the rack on top of a baking sheet. This way your meatballs will stay nice and round. Bake for 15 minutes at 390F or 200C.
This is what they should look like after baking for 15 minutes. They are soft but they stay together well. They don't fall apart.
Pan-fried tofu meatballs
Warm up 2 tablespoons of olive oil in a large skillet, then add the meatballs. Fry gently for 12 minutes, turning them around often so that they get cooked on all sides.
Add to marinara sauce
By now your marinara sauce should be ready. Add the vegan meatballs to the marinara sauce. Stir them in gently, so that the sauce coats them. Simmer for 5 minutes. At this stage, you can add more fresh parsley and basil if you like.
Serve them as a quick lunch in a meatball sandwich with marinara sauce. We make this with freshly baked baguette (the one you can get frozen and bake at home). I have no words to describe this.
The sauce and the meatballs together are just out of this world. Don't forget to add plenty of freshly chopped parsley on top.
What about some good old spaghetti with meatballs. Just boil your pasta in plenty of salted water, drain it, and arrange it on a plate.
Pour the marinara sauce on top, 3 to 4 tofu meatballs, basil, and parsley. Drizzle with some good quality extra virgin olive oil and serve. Best vegan dinner ever!
Make this dish in even less time by preparing the marinara sauce in advance. Marinara sauce stores well for a couple of days in the fridge.
You can also make the vegan meatballs ahead of time, cook them, and store them in the fridge for 3 days, and in the freezer for up to 3 months. If you make the meatballs in advance we recommend not mixing them with the sauce. We usually make a double batch and use it throughout the week.
Pan-fried meatballs are softer and juicier, but a little less healthy as they are cooked in oil.
Oven-baked ones are a little dryer, but healthier. If you put them in marinara sauce, however, it's very hard to tell which ones are fried and which ones are oven-baked, because the sauce makes them super moist and juicy.
Yes. Use gluten-free breadcrumbs. Also, serve them with gluten-free pasta or gluten-free bread.
Yes, absolutely. Just leave the breadcrumbs out. The meatballs will still be delicious, although a little denser. The tofu flavor will be more recognizable.
Change up the spices/herbs: to make a less Italian and more Asian version of tofu meatballs, you can replace oregano and parsley with cilantro, cumin, and turmeric powder. Less of a classic, still delicious!
Use a different sauce: a homemade marinara sauce is our favorite, but you could try serving the meatballs as a starter by dipping them in sweet and sour sauce.
In a small saucepan, mix 1 cup canned pineapple juice, ½ cup sugar, ⅓ cup rice vinegar, 3 tablespoons of ketchup, 2 tablespoons soy sauce, 1 and ½ tablespoons of cornstarch, and 2 tablespoons of water.
Bring to a simmer while whisking for a minute till the sauce thickens. turn the heat off, keep stirring for another minute to cool it down, and serve.
If you enjoy tofu as an easy dinner much as we do, have a look at our other quick tofu recipes:
- Pan-fried mushroom tofu
- Lemon tofu
- Tofu salad
- Scrambled tofu
- Tofu soup
- Spinach tofu pesto
- Fried tofu
- Vegan fish
Is there a recipe with tofu you're missing here? Maybe something you would love to see us make? We would love to hear from you, let us know in the comments below!
Store leftovers in the fridge for up to 3 days. Warm up in the oven, microwave, or on a pan with a little oil. You can also warm them up directly in more marinara sauce.
You can freeze the meatballs for up to 3 months. In this case, we recommend freezing them without the sauce. Thaw in the refrigerator overnight.
Tofu Meatballs with Marinara Sauce
- Food processor or blender
For the tofu meatballs
- ½ cup breadcrumbs + 1 pinch of salt
- ¼ cup oat milk unsweetened
- 8 ounces tofu firm or extra firm
- ¼ cup olives pitted, black
- ½ cup walnuts
- 2 tablespoons nutritional yeast
- 1 tablespoon cornstarch
- ⅓ onion
- 2 cloves garlic
- 1 teaspoon oregano dried
- 2 tablespoons parsley finely chopped
- 1 teaspoon salt
For the Marinara Sauce
- 2 tablespoons olive oil extra virgin
- 1 onion chopped
- 2 cloves garlic finely chopped
- ½ dried red hot chili pepper optional
- 1 can (28 oz) whole peeled tomatoes
- ½ cup water
- 1 teaspoon salt or more to taste
- 2 twists black pepper
- 1 teaspoon oregano dried
- 10 leaves basil
Homemade Marinara Sauce
- Fry finely chopped onion on a pan with olive oil for 3 mintues. Add finely chopped garlic and chili. Fry for 1 minute. Stir occasionally.
- Add tomatoes (rinse can with water and add it too), oregano, salt and pepper. Crush tomatoes with fork. Stir and simmer for 20 minutes.
- Add basil, taste, adjust for salt. Set aside.
Make Tofu Meatballs
- Mix breadcrmb and oat milk and a pinch of salt in large mixing bowl. Set aside.
- Squeeze tofu with your hands over the sink to remove some of its water. Add tofu to food processor. Add garlic, onion, chopped parsley, olives, corn starch, walnuts, salt, pepper, oregano, and nutritional yeast.
- Blend till you have smooth mixture. Scrape down sides of food processor occasionally. Taste mixture and adjust for salt, pepper and herbs.
- Transfer the mixture to the mixing bowl with the soaked breadcrumbs. Mix with your hands or with a spatula until the two are fully incorporated.
- Oil your hands with a few drops of olive oil. Shape mixture into small tofu meatballs, rolling between the palms of your hands.I recommend 20 grams of mixture (0.7 ounces) per ball. You'll be able to make 24 tofu balls.
Oven-Bake or Pan-Fry
- Oven-Bake: Preheat the oven to 390F or 200C. Arrange the meatballs on a baking rack, line with parchment paper, on top of a baking sheet.Bake for 15 minutes at 390F or 200C.
- Pan-Fry: Warm up 2 tablespoons of olive oil in a large skillet, then add the meatballs. Fry gently for 12 minutes, turning them around often.
Mix with Marinara Sauce
- Add vegan meatballs to marinara sauce. Stir them in gently, so that the sauce coats them. Simmer for 5 minutes. Add more fresh parsley and basil if you like.
- Serve on top of pasta. Spaghetti are perfect.
- Serve in a freshly baked baguette to make a meatball marinara sub.
If you liked this recipe, you might al like:
I'm sorry to say that although the flavor was good, the texture and consistency were totally off. With enough water on my hands I was able to form the mixture into balls, but nothing I did could get rid of the soft, sticky, uncooked center. I baked them in a 400° oven for a half an hour and they were still falling apart from the soft center, so I flattened them out and pan fried them for a few mins on each side then cooked them in the sauce for ten minutes. Although crisp on the outside after all that, they were still almost raw mush on the inside and falling apart when served. Will definitely not be making these again and am sad for the lost ingredients.
Hi there, I am sorry the recipe didn't turn out as expected.
We never had the falling apart or the uncooked issue.
Some things to consider, not sure if you did this, but I'll mention it anyway:
- use firm or extra firm tofu
- squeeze out the water from the tofu before blending it
- oil your hands before shaping the tofu
- make small balls, 20 grams (0.7 ounces) per ball, measured with a scale
Hope this helps troubleshoot what went wrong.
Have a great day!
I followed the instructions exactly, and ended up with a mixture the consistency of ricotta cheese. Impossible to shape into meatballs. However it tastes good. Not sure what to do next. I did use extra firm tofu and squeezed the water out of it.
Sorry it didn't turn out well, not sure what could have gone wrong. You could try adding a little more breadcrumbs and cornstarch to thicken the mixture till you are able to shape it.
Hope this helps.
These “tofuballs” are so tasteful. Great for weekdays dinner. Please, do you know if I can freeze them? Thank you!
I'm super happy you liked the tofu balls! Yes, you can freeze them. Store them in the fridge for 3 days, and in the freezer for up to 3 months (that's the tofu balls without the marinara sauce, it's best to store the sauce separately).
Have a wonderful rest of your week! Kindest,
I really enjoyed this for both the taste and the creativity! I just have to tweak a couple things to follow the steps more closely so I do have quite so mushy "meat" balls next time around! Thank you for this inspiring recipe.
Hi Nina, I'm so delighted you liked the "meat"-balls, thanks so much for taking the time to leave a comment here. And have a great Tuesday! Kindest, Louise
Just made this again this time with dried tomatoes instead of olives, also delicious
Delicious and easy to make👍👍
Hi Jon, yes, thanks for bringing that up. I've added the missing step. Add breadcrumb/mix to the rest of the meatball ingredients. Apologies for the confusion.