Packed with zucchini, spinach, mushrooms, broccoli, and white beans, this vegetable lasagna with white sauce (aka béchamel sauce) is a vegetarian recipe that’s sure to be a crowd-pleaser. Make it fresh for dinner or prep it ahead of time for an easy meal when you’re busy.
It’s that time of year when “they’ll be parties for hosting…” If you’re entertaining family or friends this holiday season, it’s always good to have some recipes that you can serve for a crowd in your back pocket. (See my Vegetarian Taco Casserole with Quinoa, Meatless Baked Ziti, and Ravioli Casserole with Kale for ideas).
Lasagna is one of my favorite cozy meals for a group during the winter months. It’s so cheesy and comforting! Being the vegetable enthusiast that I am, I wanted to come up with a veggie-packed lasagna. This vegetable lasagna with white sauce is the result of my experimentation, and boy, it really is delicious.
You still get all the comfort food qualities of classic lasagna, thanks to lots of cheese and a homemade white sauce, but there are a lot of nutritious ingredients in there too. The filling is made with cooked vegetables and navy beans.
I’d be lying if I said this was a quick recipe. (And we all know food bloggers already get a lot of flak for saying things take less time than they really do). So, be prepared to set aside some time to make this recipe. It’s not actually difficult to make. It just takes a while. And I promise you won’t regret it!
Ingredients and Substitutions
- Broccoli, zucchini, mushrooms, and spinach: The star vegetables! You can substitute other vegetables, such as cauliflower, eggplant, kale, or kohlrabi.
- Onion, garlic, and red pepper flakes: For extra flavor.
- Navy beans: You can swap in cannellini beans or Great Northern beans.
- Lasagna noodles: I used dried lasagna noodles that I boiled according to the package directions. I have not tried no boil noodles, so I do not know if they will work. I used 9 noodles (3 noodles for 3 layers). I cut 1 of the noodles in each layer in half to fit in the dish. You may need more or less than 9 noodles depending on the size you are using.
- Butter, all-purpose flour, and whole milk: For making the béchamel white sauce. You can use a plant-based milk or a lower fat milk if desired.
- Spices for the white sauce: Garlic powder, onion powder, dried parsley, dried basil, dried oregano, salt, and freshly ground black pepper.
- Ricotta cheese: Substitute cottage cheese if desired. I like to use whole milk ricotta, but you can use a lower fat version if you want to.
- Mozzarella cheese: Freshly grated tastes best, but pre-shredded is definitely OK to use.
- Parmesan cheese: Freshly grated is again the best option here, but I have made it with pre-shredded parm and it works great.
For the full recipe card with all instructions and ingredient quantities for vegetable lasagna with white sauce, scroll to the bottom of the post.
Cook vegetables in olive oil with salt, pepper, and red pepper flakes until tender. Stir in navy beans.
Boil lasagna according to package instructions to yield al dente noodles.
Make the white sauce.
Spread about half of the sauce on the bottom of a glass baking dish.
Top with cooked lasagna noodles.
Top with a layer of ricotta cheese.
Add the vegetable and bean filling
Sprinkle with mozzarella cheese.
Add another layer of white sauce.
Repeat the layering process. Sprinkle with mozzarella and parmesan cheese.
Bake lasagna at 375 degrees F for about 30 to 35 minutes or until cheese is bubbling.
Storage and Reheating
Keep white lasagna leftovers in an airtight container in the refrigerator. Reheat individual portions in a baking dish covered with foil at 375 degrees F for 15 to 20 minutes until warmed through. You can also heat lasagna in the microwave for 2 to 4 minutes, but the oven works best.
If you are baking the lasagna several hours ahead of when you plan to serve it, let it cool then cover with foil and store in the fridge. Reheat the entire dish, covered with foil, for 30 to 35 minutes at 375 degrees F. Lasagna is very forgiving and easy to reheat even if it’s fully baked. Just keep it covered while reheating so it doesn’t dry out or get too browned on top.
For instructions on freezing lasagna, see the FAQ section below. I included tips for freezing both uncooked and cooked lasagna.
Unless your noodles are marked as no boil, you need to boil lasagna noodles before baking. Follow the directions on the package, which will indicate how long to boil the noodles if you are baking them so that they don’t get too soft.
When cooking the vegetables, try to steam off as much excess water as possible. In addition, scoop the vegetables out of the skillet using a slotted spoon. If you feel as though your vegetables are extra watery, try to blot them with paper towels before adding them to the lasagna. Finally, make sure your white sauce gets thick and creamy and is not runny. You just need to cook it long enough for this to happen.
This vegetable lasagna with white sauce does not use eggs, so it’s important to let the lasagna rest for at least 10 to 15 minutes before serving so that the pieces stay together when you slice them. If you are worried about your lasagna staying together, you can whisk an egg into the ricotta cheese.
Yes. First, assemble the lasagna by following the recipe instructions. Use a pan that is freezer-safe, such as a foil lasagna pan or a glass baking dish with a lid that is marked as freezer-safe (like this Oxo one). Then, wrap the lasagna tightly with plastic wrap. You should include the pan in the wrapping. Cover the wrapped lasagna with foil, then label the foil. Freeze for up to 3 months.
To bake frozen, uncooked lasagna, let it thaw in the refrigerator overnight. Remove the foil and plastic wrap before baking. Bake according to recipe instructions. If you forgot to thaw it and need to bake it straight from frozen, add 20 to 30 minutes of baking time.
If you already cooked your lasagna, you can still freeze it. Let it cool completely, then follow the instructions above (for how to freeze uncooked lasagna). Let it thaw overnight in the fridge, remove the foil and plastic wrap, and bake according to recipe instructions. Cover the lasagna with foil while baking to keep it from getting too browned, if desired.
You can also freeze individual portions of cooked lasagna. After cooling completely, wrap each portion in plastic wrap and then foil. Put them in a container or freezer bag. Thaw individual portions overnight in the fridge, remove plastic and foil wrappings, and reheat in the oven.
I’d love to hear how you like this recipe! Rate/review using the stars on the recipe card or in the comments, and follow the Veg World on YouTube, Instagram, Facebook, and Pinterest. Looking for something totally different? Browse the recipe library.
Vegetable Lasagna with White Sauce
- 2 tablespoons extra virgin olive oil
- 1 yellow onion - diced
- 3 cloves garlic - minced
- 2 cups broccoli florets - chopped into small pieces
- 8 ounces cremini mushrooms - chopped into small pieces
- 1 zucchini - chopped into small pieces
- 2 cups baby spinach - loosely packed; chopped into small pieces
- ¼ teaspoon kosher salt
- ¼ teaspoon freshly ground black pepper
- ¼ teaspoon red pepper flakes
- 1 15-ounce can navy beans - drained and rinsed
- 9 to 12 fresh or dried lasagna noodles
- 1.5 cups ricotta cheese - whole milk
- 2.5 cups shredded mozzarella cheese
- ½ cup shredded parmesan cheese
- Preheat the oven to 375 degrees F.
- For a recipe with this many ingredients, I recommend gathering everything and having them in place. It will make the process much smoother. After gathering the ingredients, chop and prep the vegetables.
- Warm the olive oil in a large skillet over medium heat. Add the onion, cook for a few minutes, and then add the garlic followed by the broccoli. Cook for a few minutes until the broccoli starts to turn brighter green. Add the mushrooms and zucchini and cook for 5 to 7 more minutes until everything is tender and most of the moisture has been steamed off. Season with the salt, pepper, and red pepper flakes. Stir in the spinach and navy beans at the end, and cook for a couple more minutes until the spinach is wilted.
- While the vegetables cook, bring a pot of salted water to boil. Boil the lasagna noodles according to package instructions. Make sure to follow the cooking time listed for when the noodles will be baked after boiling so you don't make them too soft. Drain the noodles and rinse them with water to prevent sticking. To make sure you make enough noodles, see how they fit in a 13×9 baking dish and make however many you need to fill each noodle layer.
- Use the same pot to make the sauce. Melt the butter over medium heat, then whisk in the flour. Slowly pour in the milk, whisking as you do so. Add the seasonings: garlic and onion powders, parsley, basil, oregano, salt, and pepper. Cook over medium-low heat, stirring frequently, until the sauce begins to thicken. Remove the sauce from heat once it is thick and creamy. Stir in the ¼ cup of grated parmesan.
- Now it's time to layer the lasagna. Spread about ½ cup of sauce on the bottom of a 13×9 baking dish. Next, add a layer of noodles. I used 3 noodles for each layer: 2 that I kept intact and 1 that I cut in half to fit the remaining area that needed to be covered. You may need more or less depending on the size of your noodles. On top of the noodles, spread about ¾ cup of ricotta cheese. Next, spoon half of the vegetable and bean filling (about 2 cups) on top. Sprinkle 1 cup of the mozzarella cheese and spread 1 cup of the sauce after that. Repeat the layering process like this: noodles, ¾ cup ricotta, the rest of the veggie and bean filling, 1 cup mozzarella, 1 cup sauce, noodles, ½ cup mozzarella, and ½ cup parmesan.
- Transfer the assembled lasagna to the oven and bake on the center rack for 30 to 35 minutes until the cheese is bubbling. If you do not want the top to get too browned, you can feel free to cover the dish with foil for about half of the cooking time (either at the beginning or during the second half).
- Let the lasagna sit for 10 to 20 minutes before slicing and serving. Enjoy!
- Leave a rating or review by tapping the stars on this recipe card (above) or in the comments section (at the end of the post)!
- Leftovers: Keep in an airtight container in the fridge for up to 5 days. Reheat individual portions in a baking dish covered with foil at 375 degrees F for 20 minutes or until warmed through.
- Freezing uncooked lasagna: Assemble the lasagna, wrap the entire dish (including the baking pan) with plastic wrap and then foil. Label and freeze for up to 3 months. Be sure to use a freezer-safe container, such as a foil pan or a glass one that is marked as freezer-safe. Thaw in the fridge overnight before baking. Remove all wrapping before baking, let it sit out at room temperature while the oven preheats, and follow baking instructions as written. If you did not thaw it and are cooking from frozen, remove all wrapping and add 20 to 30 minutes onto the baking time (for best results, thaw first).
- Freezing a whole cooked lasagna: Let it cool completely, then follow the directions for wrapping, freezing, thawing, and backing uncooked lasagna as written directly above. You bake the cooked lasagna for the same amount of time as uncooked lasagna. If desired, cover with foil while baking to prevent the top from getting too browned.
- Freezing cooked lasagna portions: Let the lasagna cool completely, slice into desired portions, and wrap each one tightly with plastic wrap followed by foil. Place the slices in a freezer container or bag. Thaw in the fridge overnight before baking. Remove all wrapping, place in a baking dish, and cook for about 30 minutes.
Enjoy this cozy meal! – Lizzie