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.
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.