Creamy Mushroom and Spinach Lasagna is a comforting blend of tender mushrooms, fresh spinach, and a rich, creamy sauce layered between sheets of pasta and gooey cheese. It’s a wonderful take on classic lasagna, perfect for anyone who loves veggies but still wants that hearty, cheesy feeling.
I love making this lasagna when I’m craving something cozy but not too heavy. The mushrooms add a nice meaty texture, and the spinach gives it a fresh pop of green that balances everything out beautifully. The creamy sauce ties it all together, making each bite smooth and flavorful without feeling overwhelming.
My favorite way to serve this dish is with a simple side salad and a little crusty bread for mopping up those delicious creamy layers. It’s always a hit with friends and family, especially when I make it ahead and let all the flavors get nice and comfy overnight. Plus, leftovers taste just as good, which is never a bad thing!
Key Ingredients & Substitutions
Spinach: Fresh spinach adds a nice bright flavor and texture. You can use baby spinach or frozen spinach, just thaw and squeeze out excess water. I prefer fresh for a better texture.
Mushrooms: Cremini mushrooms give a deeper flavor than button mushrooms. But button mushrooms work well too. If you want a meatier bite, try portobello or shiitake.
Ricotta Cheese: Ricotta makes the filling creamy and light. If unavailable, cottage cheese works as a substitute but drain it well to avoid watery layers.
Béchamel Sauce: Using whole milk and butter makes the sauce creamy and rich. For a lighter option, use low-fat milk. Nutmeg adds subtle warmth but is optional.
Cheese: Parmesan adds sharpness; mozzarella melts beautifully. Feel free to swap mozzarella with provolone or fontina for different melting qualities.
How Do You Make the Creamy Béchamel Sauce Without Lumps?
Making a smooth béchamel sauce is key for creamy layers. Here’s how I do it:
- Melt butter over medium heat, then whisk in flour. Cook for 1-2 minutes, but don’t let it brown.
- Gradually add milk in small amounts while whisking constantly. This helps prevent lumps from forming.
- Keep whisking as the sauce thickens (about 5-7 minutes). It should coat the back of a spoon smoothly.
- If lumps appear, whisk vigorously or strain the sauce before using.
Patience and constant whisking make all the difference for a velvety sauce that holds your lasagna layers together.

Equipment You’ll Need
- 9×13 inch baking dish – I like this size because it fits all the layers nicely and cooks evenly.
- Large skillet – perfect for sautéing mushrooms, spinach, and aromatics without overcrowding.
- Saucepan – for making the béchamel sauce, ensuring it stays smooth and prevents splatters.
- Whisk – essential for stirring the béchamel and preventing lumps in the sauce.
- Cooking pot for the noodles – whether boiling regular noodles or using no-boil, I keep this handy.
- Sharp knife and chopping board – for prepping the spinach, mushrooms, garlic, and onion with ease.
Flavor Variations & Add-Ins
- Swap spinach for kale or Swiss chard for different greens and textures.
- Add cooked chicken, turkey, or crumbled tofu for extra protein and heartiness.
- Mix in roasted garlic or caramelized onions to deepen the flavor profile.
- Use different cheeses like provolone or fontina for melting qualities and flavor changes.
Creamy Mushroom and Spinach Lasagna
Ingredients You’ll Need:
For The Lasagna Layers:
- 9 lasagna noodles (regular or no-boil)
- 3 cups fresh spinach, roughly chopped
- 2 cups mushrooms, sliced (cremini or button mushrooms)
- 2 garlic cloves, minced
- 1 small onion, finely chopped
- 1/2 tsp dried thyme
- Salt and freshly ground black pepper, to taste
- 2 tbsp olive oil or butter (for sautéing)
- Fresh parsley, chopped (for garnish)
For The Creamy Sauce & Cheese:
- 3 cups whole milk
- 3 tbsp unsalted butter
- 3 tbsp all-purpose flour
- 1 cup grated Parmesan cheese, divided
- 2 cups shredded mozzarella cheese, divided
- 1 cup ricotta cheese
- 1/4 tsp nutmeg (optional)
Time Needed
This lasagna will take about 15 minutes to prep, around 15 minutes to cook the veggies and make the sauce, plus 40-45 minutes baking time. Don’t forget to let it rest for 10 minutes before serving. Altogether, plan for about 1 hour 15 minutes from start to finish.
Step-by-Step Instructions:
1. Preparing the Noodles:
If you use regular lasagna noodles, cook them according to the package directions until just al dente. Drain and spread them flat on an oiled surface or parchment paper to keep them from sticking together. No-boil noodles can be skipped here.
2. Cooking the Vegetables:
Heat olive oil or butter in a large skillet over medium heat. Add the finely chopped onion and minced garlic and sauté for 2 to 3 minutes until soft and fragrant.
Stir in the sliced mushrooms, seasoning with salt, pepper, and dried thyme. Cook until the mushrooms release moisture and become tender, about 5 to 7 minutes.
Add the chopped spinach and cook just until wilted, about 2 minutes. Remove the vegetable mixture from heat and set aside.
3. Making the Creamy Béchamel Sauce:
In a saucepan, melt the butter over medium heat. Whisk in the flour and cook for about 1 to 2 minutes, whisking constantly to avoid browning.
Gradually whisk in the milk, making sure to keep stirring to prevent lumps. Continue whisking for 5 to 7 minutes until the sauce thickens and coats the back of a spoon.
Remove the sauce from heat and stir in nutmeg (if using), half the Parmesan cheese, and season with salt and pepper to your taste.
4. Combining the Filling:
In a bowl, mix the ricotta cheese with the cooked vegetables until well combined.
5. Assembling the Lasagna:
Preheat your oven to 375°F (190°C). Spread a thin layer of béchamel sauce on the bottom of a 9×13 inch baking dish.
Place 3 lasagna noodles over the sauce. Spread half of the ricotta-vegetable filling over the noodles, then spoon a third of the béchamel sauce on top. Sprinkle about a third of the mozzarella cheese.
Repeat this layering with 3 more noodles, the remaining ricotta mixture, another third of sauce, and mozzarella cheese.
Finally, top with the last 3 noodles, remaining béchamel sauce, mozzarella, and the rest of the Parmesan cheese.
6. Baking and Serving:
Cover the lasagna loosely with aluminum foil and bake for 25 minutes. Remove the foil and bake for another 15 to 20 minutes until the top has turned golden brown and bubbly.
Let the lasagna rest for about 10 minutes before slicing. Garnish with fresh chopped parsley and serve warm.
Can I Use Frozen Spinach Instead of Fresh?
Yes, you can! Just make sure to thaw the spinach completely and squeeze out any excess water before adding it to the skillet. This prevents your lasagna from becoming too watery.
Do I Need to Pre-cook Regular Lasagna Noodles?
Yes, if you’re using regular noodles, boil them until al dente according to package instructions. Lay them flat on a lightly oiled surface to prevent sticking. No-boil noodles can be used straight from the package.
How Should I Store Leftovers?
Store any leftover lasagna in an airtight container in the fridge for up to 3 days. To reheat, warm it gently in the oven at 350°F (175°C) or in the microwave until heated through.
Can I Make This Lasagna Ahead of Time?
Absolutely! Assemble the lasagna and keep it covered in the fridge for up to 24 hours before baking. Let it sit at room temperature for about 20 minutes before putting it in the oven for even cooking.