When you want the comfort of a classic lasagna without the heaviness of a meat-loaded red sauce, this creamy mushroom and spinach lasagna is the answer. A silky béchamel replaces marinara entirely, letting the earthy depth of mixed mushrooms and bright, tender spinach carry the dish in a way that feels genuinely satisfying rather than like something is missing.
This is weekend cooking at its best. The layers come together with a straightforward process, and the payoff is a bubbling, golden-topped lasagna that slices cleanly and holds its shape at the table. It feeds eight comfortably, reheats beautifully, and is one of those dishes that’s worth making on a Sunday so you have something exceptional to look forward to during the week.
Why You’ll Love This Creamy Mushroom and Spinach Lasagna
The béchamel is what makes this recipe work differently from a standard lasagna. Because there’s no acidic tomato sauce competing for attention, the mushrooms and spinach come through clearly in every bite. The sauce also acts as the cooking liquid for the no-boil noodles, which simplifies the process and keeps the noodles from becoming waterlogged or over-soft.
Using a mix of mushroom varieties adds complexity to the filling. Cremini bring earthiness, shiitake add a meaty depth, and button mushrooms round everything out with a mild base note. The béchamel gets a small amount of mozzarella melted directly into it, which gives the sauce extra body and a subtle richness that plain white sauce alone doesn’t quite achieve. The 15-minute rest before slicing is not optional if you want clean, defined layers when you serve it.
Ingredients for Creamy Mushroom and Spinach Lasagna
I always use a mix of at least two mushroom varieties when making this. A single variety works, but the combination gives you more dimension in the finished filling. Here’s everything you need:
The Filling: 1 1/2 lbs mixed mushrooms (cremini, shiitake, or button), chopped 2 shallots, finely diced, or 1 small onion 6 cloves garlic, minced 8 cups fresh baby spinach 2 tablespoons olive oil Salt and black pepper to taste
The Béchamel: 4 tablespoons butter 4 tablespoons all-purpose flour 3 cups whole milk 1/2 teaspoon ground nutmeg 1/2 cup shredded mozzarella, melted into the sauce
The Assembly: 1 box no-boil lasagna sheets 15 oz ricotta cheese 1 lb fresh mozzarella, torn or shredded 3/4 cup freshly grated Parmesan cheese
For the mushrooms, buy them whole and chop them yourself rather than buying pre-sliced. Pre-sliced mushrooms release more moisture more quickly and can make the filling watery. Whole milk is essential for the béchamel. Lower-fat milk produces a thinner sauce that won’t coat the noodles properly. For the Parmesan, freshly grated from a block melts more evenly and has a more pronounced flavor than pre-grated. If you can’t find shallots, the white part of a leek is a great substitute with a similarly mild, slightly sweet character.
How to Make Creamy Mushroom and Spinach Lasagna
The key to a great white lasagna is getting the mushroom filling genuinely dry before layering. Mushrooms release a significant amount of water as they cook, and if that liquid isn’t cooked off completely, it dilutes the béchamel and makes the lasagna watery. I find that patience here pays off more than in almost any other step of the recipe.
- Heat olive oil in a large skillet over medium-high heat. Add the shallots and cook for 2 minutes until softened. Add the mushrooms in a single layer if possible and cook for 8 to 10 minutes, stirring occasionally, until they’re deeply browned and any liquid they’ve released has completely evaporated. You want them to look almost seared, not steamed.
- Stir in the garlic and cook for 1 minute until fragrant. Add the baby spinach and stir until just wilted, about 1 to 2 minutes. Season generously with salt and pepper, then transfer the filling to a bowl and set aside.
- In a medium saucepan over medium heat, melt the butter. Whisk in the flour and cook for 1 to 2 minutes, whisking constantly, until the mixture smells slightly nutty but hasn’t taken on any color. This step cooks out the raw flour taste, so don’t rush it.
- Gradually pour in the milk, about half a cup at a time, whisking well after each addition to prevent lumps from forming. Once all the milk is incorporated, bring the sauce to a gentle simmer, continuing to whisk until it thickens enough to coat the back of a spoon, about 5 minutes. Remove from heat and stir in the 1/2 cup mozzarella, nutmeg, and salt and pepper to taste.
- Preheat the oven to 400°F and grease a 9×13-inch baking dish. Give the ricotta a quick stir to loosen its texture.
- To assemble, spread 1/2 cup of béchamel across the bottom of the dish. Add a layer of no-boil noodles. Dollop half the ricotta across the noodles, scatter half the mushroom and spinach filling over the top, drizzle with béchamel, and finish with a sprinkle of Parmesan and mozzarella. Repeat the layers with the remaining ricotta, filling, and cheese. Top with a final layer of noodles, then pour the remaining béchamel over the top, spreading it all the way to the corners and edges. Cover with the remaining mozzarella and Parmesan.
- Cover tightly with foil and bake for 40 minutes. Remove the foil and bake for another 10 minutes until the top is golden and bubbling. For deeper browning, broil for 2 minutes with the oven rack in the upper third, watching closely.
- Let the lasagna rest for 15 minutes before cutting. This step allows the layers to firm up so your slices hold together cleanly on the plate.
Pro tip: Make sure the béchamel covers the no-boil noodles completely, paying special attention to the corners and edges. The moisture in the sauce is what softens the pasta during baking, and any exposed corners will be crunchy in the finished dish.

What to Serve with Creamy Mushroom and Spinach Lasagna
Because the béchamel is rich and the filling is substantial, the best sides bring acidity, crunch, or freshness to the table.
Arugula Salad with Lemon Vinaigrette: This is the pairing I come back to every time. The peppery bite of arugula and the acidity of a good lemon dressing cut through the cream sauce in a way that makes each bite of lasagna taste just as good as the first.
Garlic Bread: A simple garlic bread or focaccia gives you something to scoop up any béchamel left on the plate and rounds out the meal without overcomplicating it.
Roasted Cherry Tomatoes: Toss cherry tomatoes with olive oil, salt, and a pinch of sugar and roast at 425°F for 20 minutes until blistered. The concentrated, sweet acidity pairs beautifully with the white sauce and echoes the earthiness of the mushrooms.
Steamed Asparagus: A bunch of asparagus steamed until just tender and finished with a squeeze of lemon adds a clean, slightly grassy note that works well alongside the spinach in the filling.
Caesar Salad: A more substantial salad option that still brings enough contrast through the dressing to balance the richness of the dish.
Pro Tips & Variations
Brown your mushrooms properly: Don’t crowd the pan. If the mushrooms are piled on top of each other, they steam instead of brown. Cook in batches if your skillet is on the smaller side. The browning step is where the filling gets its depth of flavor.
Add an egg to the ricotta: Mixing one lightly beaten egg into the ricotta before layering gives it more structure and helps it set into distinct layers rather than spreading into the béchamel during baking.
Red pepper variation: Add 1/4 to 1/2 teaspoon of crushed red pepper flakes to the mushroom filling for a gentle heat that plays well against the richness of the white sauce.
Make it ahead: Assemble the lasagna completely, cover tightly, and refrigerate overnight. Bake directly from the refrigerator, adding 10 to 15 minutes to the covered bake time.
Gluten-free adaptation: Use a certified gluten-free no-boil lasagna and substitute the all-purpose flour in the béchamel with a 1-to-1 gluten-free flour blend. The sauce will behave similarly and the final result is almost identical.
Storage & Reheating Tips
Store leftovers in an airtight container in the refrigerator for up to 4 days. In my experience, the lasagna is genuinely better on day two after the layers have had time to settle and the flavors have deepened overnight. Reheat individual portions in the microwave covered with a damp paper towel, or warm a larger portion covered with foil in a 325°F oven for 20 to 25 minutes.
For freezing, let the lasagna cool completely, then wrap tightly in two layers of foil and freeze for up to 3 months. Thaw overnight in the refrigerator before reheating. You can also freeze it unbaked after assembly, which gives you an even fresher result when baked from thawed.
Common Questions
Can I use regular lasagna noodles instead of no-boil? Yes. Cook them al dente according to package directions, drain, and lay them flat on a lightly oiled surface before assembling. The béchamel quantity in this recipe was developed for no-boil noodles, so you may have slightly more sauce than needed, which is never a bad thing.
My béchamel has lumps. How do I fix it? Pass it through a fine mesh strainer or use an immersion blender for 30 seconds. Going forward, the key is adding the milk slowly and whisking continuously, especially in the first few additions when the roux is thickest.
Can I use frozen spinach instead of fresh? Yes, but it must be thoroughly thawed and squeezed as dry as possible before adding it to the pan. Frozen spinach holds significantly more water than fresh, and any excess moisture will dilute the filling and make the lasagna watery.
Why is my lasagna watery after baking? The most common cause is mushrooms that weren’t cooked long enough to release and evaporate their moisture before layering. The second most common cause is spinach that retained too much water. Both are easy to prevent by taking the extra few minutes to cook the filling until the pan looks almost dry.
Can I make this without ricotta? You can. Replace the ricotta with an additional layer of béchamel between each set of noodles, or substitute with cottage cheese that has been drained and stirred smooth. The texture will be slightly looser but still delicious.
This creamy mushroom and spinach lasagna is the kind of vegetarian dinner that satisfies even the most committed meat eaters at the table. The layers are rich, the flavors are deep, and it’s the sort of dish that makes people ask for the recipe before they’ve finished their first serving. It’s worth every minute of the prep time.

Creamy Mushroom and Spinach Lasagna
Ingredients
Equipment
Method
- Heat olive oil in a large skillet over medium-high heat. Add the shallots and cook for 2 minutes until softened. Add the mushrooms and cook for 8 to 10 minutes, stirring occasionally, until deeply browned and all released liquid has evaporated. Stir in the garlic and baby spinach and cook until the spinach is just wilted, about 1 to 2 minutes. Season with salt and pepper and set aside.
- In a medium saucepan over medium heat, melt the butter. Whisk in the flour and cook for 1 to 2 minutes, whisking constantly, until the mixture is smooth and smells slightly nutty. Gradually add the milk, about half a cup at a time, whisking well after each addition. Bring to a gentle simmer and whisk until the sauce thickens enough to coat the back of a spoon, about 5 minutes. Remove from heat and stir in the 1/2 cup shredded mozzarella, nutmeg, salt, and pepper.
- Preheat the oven to 400°F (200°C). Grease a 9×13-inch baking dish. Give the ricotta a quick stir to loosen its texture.
- Spread 1/2 cup of béchamel across the bottom of the prepared baking dish. Add a layer of no-boil lasagna noodles. Dollop half the ricotta across the noodles, scatter half the mushroom and spinach filling over the top, drizzle with béchamel, and finish with a sprinkle of Parmesan and mozzarella.
- Repeat the layering process with the remaining ricotta, mushroom filling, béchamel, and cheese. Top with a final layer of noodles. Pour the remaining béchamel over the top, spreading it to the corners and edges. Scatter the remaining mozzarella and Parmesan over the surface.
- Cover the baking dish tightly with foil and bake for 40 minutes.
- Remove the foil and bake for another 10 minutes until the top is golden and bubbling. For deeper browning, broil for 2 minutes with the oven rack in the upper third, watching closely.
- Remove from the oven and let the lasagna rest for 15 minutes before slicing. This allows the layers to firm up for clean, defined slices.
