Go Back
+ servings
4.96 from 43 votes

Vegan Meatballs (Easy, Protein-Packed & Perfectly Meaty)

These easy vegan meatballs are hearty, flavorful, and packed with protein. Made with pantry-friendly TVP (textured vegetable protein), they bake up tender and meaty with lightly crisp edges. Perfect for spaghetti, meatball subs, bowls, or appetizers, and they freeze beautifully for meal prep.
Prep Time: 15 minutes
Cook Time: 35 minutes
Total Time: 50 minutes
Servings: 4 (about 12 meatballs)
Author: Sam Turnbull

Ingredients

Instructions

  • Prep the oven: Preheat your oven to 400°F (200°C). Line a large baking sheet with parchment paper or lightly grease it.
  • Sauté the aromatics: Heat the olive oil in a large skillet over medium heat. Add the onion and garlic and cook for about 4–5 minutes until softened and just beginning to brown.
  • Hydrate the TVP: Stir in the TVP, broth, and soy sauce. Bring to a gentle simmer, then reduce heat to low, cover, and cook for 5–10 minutes, stirring often, until the TVP is softened and all of the liquid is absorbed.
  • Season and bind: Remove from heat. Stir in the nutritional yeast, basil, fennel seeds, and black pepper. Add the flour and mix very well until a dough forms that holds together when pressed. If the mixture feels too wet, add a little more flour 1 tablespoon at a time. If too dry, add a broth or water 1 tablespoon at a time.
  • Shape the meatballs: Let the mixture cool slightly, then scoop about 2 tablespoons (30 g) and gently roll into meatballs. A cookie scoop works great for even sizing. If the mixture sticks, lightly wet your hands before rolling. Place on the prepared baking sheet and repeat with the remaining mixture to make about 12 meatballs.
  • Bake: Lightly brush or spray the tops with oil. Bake for 30–35 minutes, turning the meatballs 2–3 times during baking, until browned, firm on the outside, and cooked through.
  • Serve: Serve hot with pasta and marinara, in meatball subs, in bowls, or as an appetizer with your favorite dipping sauce.

Notes

Storage: Store leftovers in an airtight container in the fridge for up to 4 days.
Freezing: Let the cooked meatballs cool completely, then freeze in a single layer on a baking sheet. Once frozen, transfer to a freezer-safe container or bag and freeze for up to 3 months.
Reheating from frozen: Bake from frozen at 375°F (190°C) for 15 to 20 minutes, or until heated through. You can also warm them directly in sauce during the last 10 minutes.
Simmering in sauce: For best texture, bake the meatballs first so they hold together well, then add them to sauce in the laste 5 to 10 minutes.
Gluten-free option: Use tamari instead of soy sauce and swap in a good all-purpose gluten-free flour blend. The texture may be slightly softer depending on the blend used.
Oil-free option: Sauté the onion and garlic in a splash of water or broth instead of oil. Bake the meatballs on parchment or a silicone baking mat.
Air fryer method: Preheat your air fryer to 370°F (188°C). Place the meatballs in a single layer and lightly spray with oil. Air fry for 18 to 24 minutes, shaking 2 - 3 times, until browned and firm. 

Nutrition

Serving: 1 serving (about 3 meatballs) | Calories: 205kcal | Carbohydrates: 26g | Protein: 16g | Fat: 4g | Saturated Fat: 1g | Polyunsaturated Fat: 0.5g | Monounsaturated Fat: 3g | Sodium: 743mg | Potassium: 201mg | Fiber: 6g | Sugar: 5g | Vitamin A: 135IU | Vitamin C: 3mg | Calcium: 120mg | Iron: 5mg

Find it online:

https://itdoesnttastelikechicken.com/easy-vegan-meatballs-tvp/

Scan the QR code for updates, tips, and to ask me any questions!

QR Code