Dinner
Tofu Meatballs (Crispy, Vegan, High-Protein) at Home
These straightforward Tofu meatballs are officially in my regular rotation! Crispy on the outside, tender in the middle, and packed
- Serves 15 meatballs
- Prep 15 minutes
- Cook 25 minutes
- Total 40 minutes

These unfussy Tofu meatballs are officially in my regular rotation! Crispy on the outside, tender in the middle, and packed with savory flavor – nothing like the sad, crumbly tofu balls you might be picturing. Searing them first and finishing in the oven is the trick that makes them actually hold together!
Love tofu recipes as much as I do!? You need to try our 5 Different Tofu Pasta Sauces, as well as our Tofu Ground “Beef” and our Ground Tofu Stir Fry!

Seriously the go-to vegan tofu meatballs!

I’ve posted more tofu recipes on this blog than I can count at this point (genuinely obsessed, no shame), but these tofu meatballs are one I get asked about the most in my inbox. Turns out a LOT of you want a meatless meatball that isn’t mushy or bland, so here we are.
These have easily become on of my go-to short busy-night dinner!
Why You’ll Love This:
- Freezer-friendly – make a double batch and stash some for later.
- No egg needed – tomato paste and breadcrumbs do all the binding work.
- Big savory flavor – nutritional yeast and tomato paste give these serious umami depth.
- Sear then bake – you get a golden crust AND a fully cooked center, no dry edges.

Simple ingredients needed
The ingredients for this vegan meatball recipe are listed fully down in the recipe card but let’s briefly go over the pantry staples needed including a few substitutions you can make as desired!
- Tofu – the base of the meatballs; extra-firm tofu holds its shape better than softer tofu. My ALL TIME go-to is especially-firm tofu because it’s the highest protein-packed tofu. It’s becoming more widely available and you can find it at most grocery stores now.
- White onion – adds moisture and a subtle savory sweetness once cooked.
- Breadcrumbs – helps bind everything together so the meatballs hold up. We only need about 1/4 cup of breadcrumbs. You can use a gluten-free flour blend or gluten free bread crumbs as needed.
- Tomato paste – adds color, tang, and helps bind the mixture too.
- Soy sauce – brings a salty, umami depth. Swap for tamari to keep this gluten-free.
- Nutritional yeast – gives a cheesy, savory flavor without any dairy.
- Salt and black pepper – for balancing and rounding out the overall flavor.
- Garlic powder – unfussy, no-mince way to add warm, savory flavor throughout. Fresh garlic would also work well – about 1-2 cloves finely minced.
- Olive oil – used to sear the meatballs and build that golden crust.
- Sauce – I made a simple sweet and sour sauce to serve these with but my from-scratch pesto sauce or marinara sauce would also be satisfying!

How to make dependable tofu meatballs
Only a reminder that you can find the FULL written recipe down in the recipe card, but I want to quickly go over how to make them with visuals for you:)

- Crumble the tofu. Break the tofu up with your hands right in a large mixing bowl until the pieces are about the size of grains of rice.

- Mix it all together. Add the onion, breadcrumbs, tomato paste, soy sauce, nutritional yeast, salt, pepper, and garlic powder, then mix until the tofu mixture is fully combined.

- Roll into balls. Portion the meatball mixture into evenly sized balls, a little smaller than golfballs – you should get about 15.

- Sear. Heat the olive oil in a large skillet and cook the meatballs over medium heat, tossing occasionally, until deeply golden brown on a few sides.
These can also be cooked in the air fryer!

- Bake. Transfer to a baking sheet and bake until firm and fully cooked through. Store leftover tofu meatballs in an airtight container.

- Make the optional sauce. Add the meatballs to the sauce and toss until fully coated. Transfer to a serving plate and top with sesame seeds and chopped parsley.

Recipe Tips
- Don’t skip the sear. Pan-frying first is what gives these that golden crust before the oven finishes cooking them through.
- Keep expectations in check. These will hold together beautifully, but they’ll stay noticeably softer than a old-style meatball – that’s only the nature of tofu, not a sign anything went wrong.
- Don’t overcrowd the pan. Give the meatballs room to move while searing so they brown instead of steam.
- Turn these into Italian tofu meatballs! As desired, you could add in some Italian herbs and serve these with marinara!

Frequently Asked Questions
The recipe
Tofu Meatballs at Home
These tofu meatballs are crispy on the outside, tender in the middle, and packed with savory, umami flavor thanks to tomato paste and nutritional yeast. Pan-searing first locks in that golden crust before a speedy bake finishes them off, so you get all the texture without babysitting the oven the whole time.
- Serves 15 meatballs
- Prep 15 minutes
- Cook 25 minutes
- Total 40 minutes
Ingredients
For the meatballs:
- 1 block extra-firm tofu (pressed)
- 1 small white onion (finely diced)
- ¼ cup breadcrumbs
- 2 tablespoons tomato paste
- 1 tablespoon soy sauce
- ¼ cup nutritional yeast
- ½ teaspoon fine sea salt
- ¼ teaspoon black pepper
- ½ teaspoon garlic powder
- ½ tablespoon olive oil
Optional add-ins:
- ¼ cup finely chopped fresh herbs
- 2-3 cloves fresh garlic (minced)
- 1-2 tablespoons hemp hearts
- 1 teaspoon Better Than Bouillon base
- 1 egg (if not keeping it vegan and want extra binding)
For the sweet and sour sauce (optional)
- ⅓ cup ketchup
- 1 tablespoon soy sauce
- 1 tablespoon cornstarch
- ¼ cup brown sugar
- ¼ cup water
- ⅓ cup apple cider vinegar
- ¼ cup pineapple juice
Method
- 1
Preheat the oven to 400°F.
- 2
Crumble the tofu with your hands right into a large bowl until the pieces are about the size of grains of rice.
- 3
Add the onion, breadcrumbs, tomato paste, soy sauce, nutritional yeast, salt, pepper, and garlic powder (plus any optional add-ins). Mix well until everything is evenly combined. Roll the mixture into golf ball sized balls, about 15 total.
- 4
Heat the olive oil in a large nonstick skillet over medium-high heat. Add the meatballs and cook for about 10 minutes, tossing every few minutes, until deeply browned on a few sides.
- 5
Transfer the seared meatballs to a baking sheet and bake for 15 minutes, until firm and cooked through.
- 6
To make the optional sauce: Whisk the cornstarch and water together to make a slurry. Add the remaining sauce ingredients to a saucepan and bring to a simmer. Stir in the slurry and cook for 2-3 minutes, until thickened and coating the back of a spoon.
Cook notes
Storage – Store leftover meatballs in an airtight container in the fridge for up to 4 days, or freeze for up to 3 months. Reheat in a skillet or air fryer to bring back the crispy edges. Nutritional info – nutritional info is ONLY for the meatballs and does not include an optional add ins OR the sauce. Marinara sauce – serve these instead with my kitchen-made 20 minute marinara sauce!
Per serving
- Calories34 kcal
- Carbohydrates3 g
- Protein3 g
- Fat1 g
- Saturated Fat0.2 g
- Polyunsaturated Fat0.4 g
- Monounsaturated Fat0.5 g
- Sodium230 mg
- Potassium95 mg
- Fiber1 g
- Sugar1 g
- Vitamin A33 IU
- Vitamin C1 mg
- Calcium14 mg
- Iron1 mg







