This vegan pesto lasagna is filled with layers of dairy-free white sauce, pesto, tofu ricotta, and no-boil noodles! It's absolutely packed with flavor and tastes so great that you may not even notice it's vegan.

Lasagna is one of those dishes that is a labor of love. But what results from a fair amount of time spent in the kitchen is the ultimate comfort dish, and that's certainly the case here with this vegan pesto lasagna.
This vegan pesto lasagna consists of layers of homemade herby tofu ricotta (the same kind used in my recent vegan stuffed shells recipe), pesto, mushrooms with spinach, a dairy-free white sauce (similar to my garlic alfredo recipe), and no-boil noodles. All topped with vegan mozzarella-style cheese.
If you like pesto and lasagna, then you are sure to love this recipe.
What you'll need
- Pesto is traditionally made with cheese but vegan brands are out there. Check out this post about vegan pesto brands for ideas. Or you can make your own homemade pesto.
- No boil lasagna noodles provide the perfect amount of texture, whereas regular pasta noodles can become soggy while the lasagna cooks.
- White sauce is made using unsweetened, unflavored soy milk (but any non-dairy milk works), all-purpose flour, and olive oil. This is a bechamel-style sauce I use in many, many vegan recipes (like sausage gravy, squash casserole, etc.)
- Mushrooms and spinach make up the veggie layer. Baby bella mushrooms are my go-to but white mushrooms also work. You can use fresh or frozen spinach, just make sure the frozen spinach is completely thawed and excess liquid is removed before using.
- Vegan cheese: I love Trader Joe's shredded dairy-free mozzarella cheese, but any mozzarella-style cheese works. You can even make your own homemade vegan mozzarella!
- Tofu ricotta is a dairy-free ricotta alternative that works perfectly in vegan lasagna. I like to add herbs like basil and parsley, but you can stick to a plain ricotta if you prefer.
How to make
Lasagna is all about the layers. But first, we need to assemble all of the pesto lasagna components, starting with the tofu ricotta.
Making the lasagna fillings
Tofu ricotta (5 minutes): Add tofu, olive oil, and lemon juice to a food processor with a standard blade attachment. This can also be done by hand with a potato masher.
Process until smooth, then add in remaining ingredients and process again until smooth. I have a full blog post on tofu ricotta that includes additional tips, substitutes, and variations.
New to cooking vegan sauces and gravies? Check out my complete guide on how to make vegan bechamel sauce to learn more about the roux method used in this recipe.
White sauce (10 minutes): Heat a large saute pan over medium-high heat.
- Add olive oil and flour. Saute for 1-2 minutes to "cook" the flour. Slowly whisk in the soy milk ¼ cup at a time to form a thick paste.
- Slowly add all of the soy milk to the dish, whisking continuously to prevent lumps. Bring to a rapid simmer over medium high heat, then reduce to a simmer. Simmer until thickened enough to coat the back of a spoon without sliding off.
Veggies: Cook mushrooms and shallots in olive oil over medium-high heat until softened, about 6-8 minutes. Add the spinach and cook until wilted, about one minute.
Assembling the lasagna
- Spread ½ cup white sauce on the bottom of an 8x11 or similarly sized casserole dish. Add 3 no-boil lasagna noodles, or as many as needed to fully cover the bottom of the dish. Top with ¼ cup white sauce. Make sure the noodles are fully coated in sauce.
- Spread ½ cup tofu ricotta across the noodles. Top with half of the veggies.
- Top with ⅓ cup pesto. I like to dollop the pesto but you can also spread it.
- Top with 3 noodles, or as many as needed to fully cover the dish. Top the noodles with ¼ cup white sauce, spreading to thoroughly coat.
- Add ½ cup tofu ricotta and remaining vegetables. Top with ⅓ cup pesto.
- Top with 3 noodles. Add remaining white sauce to thoroughly coat the noodles. Top with 1 cup vegan mozzarella.
- Cover tightly with foil and bake at 375F for 20 minutes. Remove the foil and bake for another 15 minutes. The lasagna is ready when bubbling and hot throughout.
Expert tips and recipe FAQ
- Wait before slicing: Let the lasagna cool at least 10 minutes before serving. This helps the pieces stay together while slicing and lasagna is very hot when it comes out of the oven.
- Homemade vegan pesto can be used instead of storebought. My go-to recipe for vegan pesto is made by blending together 2 cups basil, 2 cups spinach, ¼ cup olive oil, juice from one lemon, 2 tablespoons nutritional yeast, 3 cloves garlic, ½ teaspoon salt. You can omit spinach and use 4 cups basil if desired. My avocado pesto and pine-nut-free pesto also go so well in this lasagna.
- Lasagna size: I cooked this lasagna in an 8x11 glass baking dish. It should also work in a 9x9 or similarly sized dish. It's okay if the lasagna noodles overlap a little, but try to avoid too much overlap or too much space between noodles.
I don't recommend omitting the white sauce because it is needed to cook the no-boil pasta noodles.
Yes, any kind of veggie can be used for the filling. Sauteed zucchini and squash are great options, as well as eggplant, arugula, and artichoke hearts.
Leftovers are best kept refrigerated in a closed container for 3-4 days. Reheat individual servings in the microwave in 1-2 minutes. Reheat the entire lasagna in the oven at 350F. Cover with foil and cook for 20-25 minutes, or until heated through.
I have not tried freezing this recipe. I imagine that it would work well because lasagna is generally great as a freezer meal.
You can, but I recommend cooking the lasagna noodles to a little below al dente. This will allow them to soak up extra liquid while cooking without becoming too soggy.
Looking for more dinner ideas?
📖 Recipe
Vegan Pesto Lasagna with Tofu Ricotta
Ingredients
For the Pesto Lasagna
- 9 no-boil lasagna noodles see note #1
- 1 cup vegan shredded mozzarella
- ⅔ cup vegan pesto (~6 ounces) see note #2
Tofu Ricotta
- 14 ounce block firm tofu liquid drained off
- 2 tablespoons lemon juice
- 1 tablespoon olive oil
- 1 teaspoon yellow miso mixed with 1 teaspoon water
- 3 tablespoons nutritional yeast
- ½ teaspoon salt
- ¼ teaspoon white sugar
- ½ cup fresh basil more for garnish
- ½ cup fresh parsley
White Sauce
- 2 tablespoons olive oil
- ¼ cup all-purpose flour
- 2 and ¾ cup unsweetened soy milk or non-dairy milk of choice
- 1 tablespoon nutritional yeast
- ¼ teaspoon salt
- ¼ teaspoon black pepper
Veggie Filling
- 1-2 teaspoons olive oil
- 8 ounces baby bella mushrooms sliced
- 1 medium shallot roughly chopped
- ¼ teaspoon salt
- 2 cups spinach
Instructions
- Preheat oven to 375F.
- To make the tofu ricotta: In a food processor with a standard blade attachment, process together tofu, lemon juice, and 1 tablespoon olive oil until smooth. Add remaining tofu ricotta ingredients and process until smooth. This can also be done by hand using a potato masher or fork.
- To make the white sauce: Heat a large skillet over medium-high heat. Once hot, add olive oil and all-purpose flour. Saute 1-2 minutes, stirring frequently, until the flour is golden. Whisk in ¼ cup soy milk to form a thick paste.
- Slowly whisk in remaining soy milk. Bring to a rapid simmer over medium-high heat, then reduce to a low simmer. Sprinkle in nutritional yeast, salt, and pepper. Simmer until thickened enough to coat the back of a spoon. Remove from heat and set aside.
- To make the veggies: Heat a skillet over medium-high heat. Add olive oil. Once hot, add mushrooms, shallots, and salt. Cook 6-8 minutes, or until mushrooms are softened. Add the fresh spinach, stirring until wilted. Remove from heat and set aside.
- Assemble the lasagna: Spread ½ cup white sauce on the bottom of an 8x11 or similarly sized casserole dish. Add 3 no-boil lasagna noodles, or as many as needed to cover the dish. Top with ¼ cup white sauce. Make sure the noodles are fully coated in sauce.
- Spread ½ cup tofu ricotta across the noodles. Top with half of the veggies. Top with ⅓ cup pesto.
- Add 3 noodles. Add ¼ cup white sauce, spreading to thoroughly coat. Add ½ cup tofu ricotta and remaining vegetables. Top with ⅓ cup pesto.
- Top with 3 noodles. Add remaining white sauce to thoroughly coat the noodles. Top with 1 cup vegan mozzarella.
- Cover tightly with foil and bake at 375F for 20 minutes on the middle oven rack. Remove the foil and bake for another 15 minutes. The lasagna is ready when bubbling and hot throughout. Let rest at least 10 minutes before slicing. Serve garnished with additional pesto, tofu ricotta, and fresh basil.
Notes
- Lasagna noodles: I use Trader Joe's brand no-boil lasagna noodles. If using another brand, add as many lasagna noodles as needed to fully cover the baking dish.
- Pesto: You are most likely to find vegan pesto at a health foods store. Homemade vegan pesto can be made by blending together 2 cups basil, 2 cups spinach, ¼ cup olive oil, juice from one lemon, 2 tablespoons nutritional yeast, 3 cloves garlic, ½ teaspoon salt. You can also omit spinach and use 4 cups basil total.
- Lasagna size: I make this lasagna in an 8x11 glass baking dish. It should also work in a 9x9 or similarly sized dish.
- Leftovers are best kept refrigerated in a closed container for 3-4 days. Reheat individual servings in the microwave in 1-2 minutes. Reheat the entire lasagna in the oven at 350F. Cover with foil and cook for 20-25 minutes, or until heated through.
Author's note: This recipe was originally shared in July 2018. It was updated in February 2022 with new photos, a video, and an improved recipe.
Rachael Neusch
I only have traditional lasagna noodles. Do I have to change anything?
Cassidy Reeser
Hi! I would just cook the lasagna noodles before adding them into the lasagna. Enjoy!
sandra moyer
can i use the dairy free ricotta instead of making my own?
Cassidy Reeser
Yep that would work well!
CB
Hi Cassidy. This sounds scrumptious. Is there any chance we could also have the metric and Celsius measurements and temperatures?
BW
Cassidy Reeser
I wish I had those for you but I don't use metric, I only measure with cups/tablespoons etc. You could probably convert most of the measurements to grams using this chart: https://www.thespruceeats.com/metric-conversions-for-cooking-2355731
As far as temp goes, 375F is 190 Celsius.