This vegan spinach lasagna is made with delicious layers of homemade tomato sauce and dairy free ricotta cheese. It creates a hearty, comforting meal without any complicated ingredients or steps.
With 12 total layers, this is truly a spectacular dish and a crowd-pleaser if you ever need to cook for vegan or non-vegan friends and family!

Get the Veg Out newsletter for vegan recipes + nutrition content!
This post contains affiliate links (including Amazon Associates) and I earn from qualifying purchases.
Is Lasagna Vegan?
Lasagna is typically a cheese-heavy, and often meaty, pasta dish. While lasagna noodles are often vegan, and tomato sauce can be vegan too, this dish is almost never vegan unless specified.
Spinach lasagna is often made with ricotta cheese. Again, unless specified that the ricotta is vegan, it’s made with dairy and therefore not a vegan option.
Luckily, anything can be made vegan! This recipe features a homemade tomato sauce with TVP to replace ground beef. It also uses plenty of spinach along with vegan ricotta cheese!
Vegan Spinach Lasagna Ingredients
This recipe uses simple ingredients to create a decadent and hearty meal. Most items are well-stocked in my vegan kitchen.
Vegan Lasagna Sauce
To prepare a meaty vegan lasagna sauce, I like to use:
- Olive oil: Start your sauce with a delicious base layer of flavor by cooking onions and garlic in olive oil. Use any type of cooking oil you prefer.
- Onion and garlic: These vegetables add tasty aromatics to your sauce. If needed, substitute fresh for onion and garlic powder, but the final sauce won’t have quite as much flavor.
- TVP: Textured vegetable protein (TVP) is a dry soy protein crumble that easily replicates the texture of ground meat. It’s an inexpensive vegan protein that works wonders in pasta sauce recipes when you want to replace ground beef. If you don’t have (or don’t like) TVP, replace it with 2 cups of cooked lentils, veggie ground round or another vegan ground beef alternative.
- Vegetable broth: Since TVP is dry, you’ll need to hydrate it. I use vegetable broth to flavor the TVP since it doesn’t have much taste on its own. If you use a TVP alternative (lentils, ground round or vegan ground beef) do NOT use the vegetable broth. Its only purpose is to hydrate the TVP.
- Canned tomato: You’ll need 2 large cans of tomato for this recipe. I like one crushed (pureed) and one diced can for texture. You could simply use 2 cans of crushed tomatoes if you prefer. I don’t recommend 2 cans of diced tomatoes as there won’t be enough blended tomato to make a sauce (it’ll be too chunky).
- Fresh basil: Nothing beats the flavor of fresh herbs, and basil is the best option for this sauce! You can substitute for 2 teaspoons of dry basil if you don’t have fresh on hand.
- Dry oregano: Along with basil, dry oregano is a perfect addition to this sauce. If you have fresh oregano on hand, you can use 2-3 teaspoons of it instead.
- Salt and pepper: Salt rounds out the flavors in this sauce. You can add it to taste, but don’t skip it completely or you’ll have a bland lasagna sauce. Black pepper is optional too, so add it to your taste.
Spinach-Ricotta Lasagna Filling
Layer your rich and flavorful spinach ricotta lasagna with:
- Lasagna noodles: Grab a box of lasagna noodles! I like oven-ready (no-cook) lasagna noodles to save time, but you can also buy regular noodles and pre-cook them before using in this recipe.
- Spinach: As this is a spinach lasagna, I pack it full of the tasty leafy green. I use frozen spinach simply because it’s way less expensive and much more convenient than fresh. If you only have fresh spinach, you could cook it down, but you’d need a huge amount (I’ve not tested this so don’t know what that amount is).
- Vegan ricotta: I make vegan ricotta cheese with almonds and tofu for a rich, creamy lasagna. You can use any vegan ricotta recipe you like, or a store-bought option. I use a double batch of my ricotta recipe for an ultra cheesy and super satisfying meal. However, a single batch can work if that’s all you want to use.
- Sliced tomato: This is optional, but I like to top lasagna with a layer of sliced tomato. It makes the lasagna look nice since this recipe isn’t topped with cheese (although you could add some).
- More fresh basil: Place any leftover basil on top of the lasagna, after it’s out of your oven. This adds a beautiful, fresh green color and lots of delicious fresh basil flavor. Of course, this is optional.
How to Make Spinach Ricotta Lasagna
Lasagna requires time to put together, but it’s always worth the effort. This recipe is made to be simple, so follow the directions below to see how it’s done!
Step 1: Prep Ricotta Cheese
If you don’t have access to store-bought vegan ricotta, make your own! Check out my rich and delicious almond-tofu ricotta recipe.
I always use my recipe, but you can use whatever ricotta you like. Just factor in the time it takes to make ricotta. If your recipe requires time to strain the cheese, it’s unlikely you’ll eat the lasagna for dinner that night.
My vegan ricotta cheese recipe is ready to use right away, so check it out!
Step 2: Prep Spinach
Next, take some frozen spinach out of your freezer.
Thaw the spinach to room temperature using a microwave oven, or warm it in a pot over low heat.
Next comes the most important step: draining your spinach. Add thawed spinach to a mesh strainer and press as much water out as you can. It’s unbelievable how much water spinach holds!
Toss the spinach around multiple times and press it from all angles. Set your pressed spinach aside while you make the sauce.
Step 3: Make Vegan Lasagna Sauce
Since the ricotta and spinach takes some work, I keep the lasagna sauce simple. While it’s nice to add extra vegetables, chopping them takes more time than I typically want to put into one meal.
If you have energy, try adding mushroom, bell pepper and/or zucchini!
To make the sauce, finely chop some onion and mince or press the garlic. Warm olive oil in a large pot over medium heat, then add the onion and cook for about 5 minutes, until it softens.
Add garlic and cook for another 2 minutes. If the garlic starts to brown, lower your heat.
Next, add textured vegetable protein (TVP) and toss to coat with oil, onions and garlic. Pour in vegetable broth and cook for a couple of minutes, until the broth fully absorbs into your TVP.
If you use lentils or veggie ground round instead of TVP, do not add vegetable broth and continue the recipe. Likewise, if you use a raw vegan ground beef alternative, add it to the onions and garlic and cook according to the package directions. Again, do not use vegetable broth.
Once your TVP or vegan meat substitute is ready, add all remaining sauce ingredients to the pot. Stir until everything is well combined, then remove the pot from heat.
Step 4: Layer Lasagna
Get a 9x13-inch baking dish and all the ingredients for the layers, including lasagna noodles, spinach, ricotta and sauce.
Spread a thin layer of sauce onto the bottom of your pan.
Add 3 lasagna noodles, then cover with a full layer of sauce. This layer should use ⅓ of your sauce.
Next, crumble a layer of vegan ricotta over the sauce. Use about half of your prepared ricotta. I like to make a double batch of ricotta for this recipe so there’s loads of cheese, but this isn’t necessary.
On top of the ricotta, spread half of your pressed spinach.
Next is another 3 lasagna noodles, followed by another layer of sauce (half of the remaining sauce; ⅓ of the total yield).
Follow this with another layer of ricotta and spinach (using all the remaining ricotta and spinach).
Add a final layer of 3 lasagna noodles, then all the remaining sauce.
You can stop here or top the lasagna with some optional garnishes. I like to add sliced tomatoes, but you could also top with more vegan cheese.
Step 5: Bake, Rest and Serve
Preheat your oven to 350 °F.
Cover the lasagna with tin foil (or an oven-safe lid if your baking dish has one).
Bake the lasagna covered for 45 minutes, then uncover and bake an additional 15 minutes.
When cooked, your lasagna should be hot in the center with sauce bubbling at its edges. Since lasagna tends to make a mess in the oven, bake it on a baking tray (or place a tray underneath it in the oven). That way your tray will catch any spills and make for easy clean up.
Once out of the oven, let your lasagna rest for 10 minutes. Serve hot!
How to Create a Balanced Vegan Meal
I consider a balanced meal one that contains a good source of plant-based protein, carbohydrates, fats and lots of vegetables or fruits.
This recipe has it all! There’s protein in the TVP and ricotta (if you use my almond-tofu ricotta recipe) and carbohydrates from the lasagna noodles. There are healthy fats in the almond-tofu ricotta and a smaller amount in the sauce.
Lastly, this lasagna is packed with spinach for a nutritious leafy green vegetable, and tomatoes in the sauce.
Feel free to serve alongside some other classic Italian-American favorites like vegan Caesar salad or garlic bread!
How to Store Leftover Lasagna
Cool leftover lasagna to room temperature before refrigerating. You can transfer it to a container or keep in the baking dish, covered with a lid or tin foil.
Reheat leftover lasagna in your microwave.
You can also prepare this recipe ahead of when you’ll bake it. Simply prepare the lasagna, cover the baking dish and refrigerate for a day or two until you’re ready to bake.
If you cook the lasagna from cold, increase its cook time by 10-30 minutes. Make sure the center of your lasagna is hot and sauce bubbles up the edges to make sure it’s fully cooked.
I don’t freeze this lasagna because the tofu ricotta cheese may not freeze well (tofu changes texture when frozen). You can freeze the assembled lasagna without ricotta, but it won’t be as tasty without layers of creamy cheese.
If you make this recipe, please rate and comment below to help others benefit from your experience!
Vegan Spinach Lasagna with Ricotta Cheese
Ingredients
Lasagna Layers
- 9 oven ready lasagna noodles
- 660 grams vegan ricotta cheese *
- 660 grams frozen spinach , thawed **
Lasagna Sauce
- 2 tablespoons olive oil
- 1 cup onion , finely chopped (150 g)
- 4-6 cloves garlic , finely minced (about 15 g)
- 1 cup textured vegetable protein (TVP) (95 g)
- 1 cup vegetable broth
- 28 ounces crushed tomatoes (800 ml can) ***
- 28 ounces diced tomatoes (800 ml can)
- ½ cup fresh basil , sliced (12 g)
- 1 teaspoon dry oregano
- 1 teaspoon salt (or to taste)
- black pepper (to taste)
(Optional) Lasagna Toppings
- tomato , thinly sliced
- fresh basil ****
Instructions
Step 1: Prep Ricotta Cheese
- If needed, prepare a double batch of my vegan ricotta cheese recipe.660 grams vegan ricotta cheese
- You can use another ricotta recipe or a store-bought option too.
Step 2: Prep Spinach
- Thaw your frozen spinach. I use a microwave to quickly defrost it.660 grams frozen spinach
- Add the thawed spinach to a mesh strainer. Place the strainer over a large bowl and use a fork or spoon to press out as much water as possible.
- Toss the spinach many times and press from all angles.
Step 3: Make Vegan Lasagna Sauce
- Warm olive oil in a large pot over medium heat.2 tablespoons olive oil
- Add finely chopped onion and cook for about 5 minutes, until the onion softens.1 cup onion
- Next, add minced garlic and cook for another 2 minutes. If the garlic starts to brown, lower your heat.4-6 cloves garlic
- Add TVP to the pot and toss to coat with oil, then add vegetable broth. Cook for 1-2 minutes, until your TVP fully absorbs the broth.1 cup textured vegetable protein (TVP), 1 cup vegetable broth
- At this point, add all remaining sauce ingredients: crushed and diced tomatoes, fresh sliced basil, dry oregano, salt and pepper to taste.28 ounces crushed tomatoes, 28 ounces diced tomatoes, ½ cup fresh basil, 1 teaspoon dry oregano, 1 teaspoon salt, black pepper
- Stir to combine then remove the sauce from heat.
Step 4: Layer lasagna
- Spread a thin layer of sauce onto the bottom of a 9x13 baking dish.
- Place 3 lasagna noodles over the sauce. Cover these noodles with a layer of sauce; use ⅓ of the sauce in your pot.9 oven ready lasagna noodles
- Next, crumble or spread a layer of vegan ricotta over the sauce; use half the ricotta cheese. Top this with a layer of spinach spread as evenly as possible; use half the spinach.
- Top the spinach with 3 more lasagna noodles followed by another layer of sauce. This time, use half the sauce that remains in your pot (⅓ of the total batch).
- For the next layer, use all the ricotta that remains. Follow this with all the spinach that remains.
- Add the final 3 lasagna noodles, then all your remaining sauce.
- Top with sliced tomato and fresh basil (if using).tomato, fresh basil
Step 5: Bake, Rest and Serve
- Preheat your oven to 350 °F.
- Cover the lasagna with tin foil (or an oven-safe lid if your baking dish has one).
- Bake, covered, for 45 minutes. Remove the tin foil (or lid) and bake another 15 minutes.
- Your lasagna should bubble around the edges and be hot through the center.
- When baked, remove from your oven and let rest for 10 minutes before serving hot.
Video
Notes
Nutrition
More Vegan Main Meal Recipes
Like this recipe? You should also try:
About Nicole Stevens
Nicole is a vegan Registered Dietitian (RD) and founder of Lettuce Veg Out.
She helps people thrive on a vegan diet with balanced recipes and easy-to-understand nutrition science.
Bernadette
My hubby and I tried this last night and it's a keeper! We'll be making it for our Christmas Eve dinner with family. I used Boca Bits instead of TVP because that's what I had on hand. That was the only change from the original recipe. Loved it!
Nicole Stevens
So happy you and your family enjoyed! I don't know what Boca Bits are but glad it worked well 🙂