If you love lasagna but don’t always want the heaviness of a red sauce and meat layers, this creamy spinach and mushroom lasagna is the answer. It’s rich without feeling overwhelming. Cozy without feeling like a brick on the plate. And it tastes like something you’d order at a little Italian place where the lights are warm and the portions are generous.
Here’s what you get in every slice: tender noodles, a silky white sauce, savory mushrooms browned until they taste almost meaty, and spinach tucked into the layers so it feels fresh instead of fussy. There’s ricotta for that classic lasagna creaminess, mozzarella for the stretchy pull, and Parmesan to sharpen everything up.

It’s also a great make-ahead meal. Assemble it earlier in the day (or the day before), bake when you’re ready, then let it rest while you toss a simple salad. The leftovers reheat beautifully, too. Honestly, the second-day slice might be the best slice.
Let’s make it.
Ingredients
Here I explain the best ingredients for this creamy spinach and mushroom lasagna recipe, what each one does, and substitution options. For the exact ingredient measurements, see the recipe card at the bottom of this post.
Lasagna noodles
You can use regular lasagna noodles or oven-ready (no-boil).
-
Regular noodles give you the most classic texture.
-
Oven-ready noodles save time and soak up sauce while baking, which helps the layers set nicely.
If using regular noodles, cook them just until flexible. You don’t want them fully soft because they’ll keep cooking in the oven.
Mushrooms
Mushrooms are the backbone of flavor here. When you brown them well, they bring a deep, savory taste that makes this lasagna feel hearty, even without meat.
I like cremini (baby bella) mushrooms because they’re easy to find and they brown well. A mix of mushrooms makes it feel extra special, and I’ll share options below.
Spinach
Fresh spinach gives the best flavor and texture in this dish. You’ll wilt it quickly, then squeeze out any extra moisture before layering.
Frozen spinach works too, and it’s convenient. Just thaw it completely and squeeze it very dry.
Butter + flour
These start the creamy sauce. You’re building a quick roux (a cooked butter and flour mixture) so the sauce thickens and stays silky instead of thin and runny.
If you need a gluten-free option, you can use a gluten-free flour blend for the roux, or replace the flour with cornstarch (details in the tips section).
Milk (or half-and-half)
Milk keeps the sauce creamy without being too heavy. Half-and-half makes it richer and a little more decadent.
If you want a super luxurious lasagna, you can do half milk and half half-and-half.
Garlic + onion (or shallot)
Garlic is non-negotiable for me in this sauce. It makes the whole pan smell amazing.
Onion or shallot adds sweetness and depth. Shallots are softer and slightly sweeter than onion, which fits nicely in a cream-based dish.
Parmesan cheese
Parmesan adds salty, nutty depth and sharpness that keeps the sauce from tasting flat.
Freshly grated Parmesan melts smoother, but pre-grated works if that’s what you have.
Ricotta cheese
Ricotta gives you that classic lasagna creaminess in the layers. Whole milk ricotta is richer and less grainy than part-skim.
If you prefer a smoother texture, you can mix ricotta with a little mozzarella and Parmesan. That combo spreads easier and tastes a bit more balanced.
Mozzarella cheese
Mozzarella is for that melty stretch and golden top. Low-moisture shredded mozzarella is the easiest for lasagna because it melts evenly without releasing too much water.
Fresh mozzarella is delicious, but it can make the lasagna watery unless you slice it and pat it dry well.
Egg
One egg mixed into ricotta helps the cheese layer set as it bakes, so slices hold together better.
Seasonings
Salt and black pepper are a must. I also love:
-
Italian seasoning or dried oregano
-
a pinch of nutmeg in the white sauce (tiny amount, big payoff)
-
crushed red pepper flakes (optional, for gentle warmth)
Ingredient notes and substitutions
This recipe is forgiving. You can tweak the cheese, adjust the greens, or use what’s already in the fridge. Here are swaps that work well.
Spinach swaps
-
Kale: remove thick stems and chop finely. Sauté until tender, then cool before layering.
-
Swiss chard: similar to spinach, slightly stronger flavor. Cook it down and squeeze out moisture.
Mushroom swaps
-
Cremini (baby bella): classic, reliable, great browning.
-
White button mushrooms: mild and budget-friendly.
-
Portobello: chop them small and cook them down well—great “meaty” texture.
-
Shiitake: add intense savory flavor, but remove tough stems.
-
Oyster mushrooms: tender and delicate, amazing in a mix.
Ricotta alternatives
If you don’t love ricotta texture, you can use:
-
cottage cheese (blend it for a smoother feel)
-
a mix of cream cheese + mozzarella for a richer layer
-
béchamel-only lasagna (more sauce, no ricotta layer) for a very creamy, restaurant-style result
Milk alternatives
-
Whole milk is best for a creamy sauce.
-
2% works, but the sauce is slightly thinner.
-
Unsweetened plain oat milk can work in a pinch, but the flavor shifts a bit.
Add a little brightness
Creamy pasta bakes can feel heavy if they’re missing a bright note. Two easy fixes:
-
a squeeze of lemon over your slice right before eating
-
a handful of chopped parsley stirred into the mushrooms before layering
Not required. Just nice.
Best mushrooms for lasagna
If you want the mushroom layer to taste bold and savory, pick mushrooms that brown well.
Cremini mushrooms are my everyday choice. They’re slightly deeper than white mushrooms and hold up beautifully.
If you want a more “special occasion” flavor, do a mix:
-
cremini + shiitake
-
cremini + oyster
-
cremini + portobello
And here’s the real secret: it’s not only the mushroom type. It’s how you cook them.
If you crowd mushrooms in the pan, they steam. Steamed mushrooms taste pale. Browned mushrooms taste like they belong in lasagna.
Cook them in batches if you need to. Give them room. Let them sit. Then stir.
How to avoid watery lasagna
Creamy lasagna can go watery fast if moisture isn’t managed. The good news? This is easy to control once you know where water sneaks in.
1) Cook out the mushrooms
Mushrooms release a lot of liquid. You want that liquid to evaporate in the skillet, not inside your lasagna.
Cook mushrooms until they’re browned and the pan looks mostly dry. That’s the point where flavor is concentrated and moisture is reduced.
2) Squeeze the spinach dry
Whether you use fresh spinach or frozen, squeeze it.
-
For fresh: wilt, cool slightly, then squeeze.
-
For frozen: thaw completely, then squeeze hard.
If you skip this step, the spinach will leak water into the layers while baking.
3) Use low-moisture mozzarella
Low-moisture mozzarella melts cleanly and doesn’t flood the dish.
If you use fresh mozzarella, pat it dry with paper towels and use it sparingly.
4) Make a sauce that’s thick enough
Your white sauce should coat the back of a spoon. If it’s too thin, it will pool.
5) Let the lasagna rest
Resting isn’t optional if you want clean slices. The lasagna needs 15–20 minutes to settle after baking.
That rest time turns “scoopable” into “sliceable.”
How to make creamy spinach & mushroom lasagna
I’ve included step-by-step instructions below to make this recipe easy to follow at home. For the full detailed recipe instructions and ingredient quantities, scroll to the recipe card at the bottom of this post.
Step 1: Prep the oven and noodles
Preheat the oven to 375°F.
If using regular lasagna noodles, boil them in salted water until just flexible, then drain and lay them flat on a baking sheet so they don’t stick.
If using oven-ready noodles, set them aside. No prep needed.
Step 2: Cook the mushrooms
Heat olive oil (or a mix of butter and oil) in a large skillet over medium-high heat.
Add mushrooms and let them cook without stirring for a few minutes. Once the bottom starts browning, stir and keep cooking until:
-
mushrooms are deep golden
-
moisture has cooked off
-
the pan looks mostly dry
Add onion (or shallot), cook 2–3 minutes, then add garlic and cook 30 seconds.
Season with salt, pepper, and Italian seasoning. If you like a little warmth, add a pinch of red pepper flakes.
Transfer the mushroom mixture to a bowl.
Step 3: Wilt the spinach
In the same skillet (no need to wash it), add spinach in batches and cook just until wilted.
Move spinach to a colander, let it cool slightly, then squeeze out as much moisture as you can. Chop it lightly so it spreads evenly in layers.
Stir spinach into the mushrooms.
Step 4: Make the creamy sauce
In a saucepan or Dutch oven over medium heat, melt butter.
Whisk in flour and cook for about 1 minute. You’re not browning it deeply, just cooking out the raw flour taste.
Slowly whisk in milk (or half-and-half), whisking constantly to avoid lumps.
Bring to a gentle simmer and cook until thick enough to coat the back of a spoon, about 5–7 minutes.
Turn heat to low and stir in Parmesan, salt, pepper, and a tiny pinch of nutmeg.
Taste the sauce. Adjust salt. Cream sauces need enough seasoning to taste alive.
Step 5: Mix the ricotta layer
In a bowl, combine:
-
ricotta
-
egg
-
a little Parmesan
-
salt and pepper
-
optional: chopped parsley
This layer gives the lasagna that classic creamy bite.
Step 6: Assemble the lasagna
Now you layer. Don’t overthink it. Just keep things even.
Spread a thin layer of white sauce in the bottom of a greased 9×13-inch baking dish.
Add noodles, then ricotta mixture, then mushroom-spinach mixture, then mozzarella, then sauce.
Repeat until you’ve used everything up, finishing with sauce and a generous layer of mozzarella on top.
Step 7: Bake, then rest
Cover with foil and bake for 25 minutes.
Remove foil and bake another 15–20 minutes, until bubbly around the edges and golden on top.
Let the lasagna rest for 15–20 minutes before slicing.
Assembly order
If you like a neat slice that holds together, this order works well:
-
Sauce (thin layer)
-
Noodles
-
Ricotta layer
-
Mushroom + spinach layer
-
Mozzarella
-
Sauce
Repeat, then finish with sauce + mozzarella on top.
You can do 3 full noodle layers in a 9×13 pan. Sometimes 4 if you keep layers thinner.
No need to be perfect. Just spread things evenly and keep your top layer generous with cheese.

Recipe tips
Brown the mushrooms like you mean it
This is where flavor happens. Let the mushrooms sit against the hot pan until they get color. Stir later.
If you rush, the whole lasagna tastes lighter and less savory.
Season in layers
Salt the mushrooms. Season the sauce. Season the ricotta. If you only salt at the end, the lasagna tastes bland in the middle.
Want extra creamy?
Use half-and-half in the sauce, or stir 2 tablespoons of cream cheese into the sauce once it’s thickened. It melts right in and gives the sauce a slightly richer body.
Want a firmer slice?
-
Use oven-ready noodles (they soak up extra sauce).
-
Let the lasagna rest a full 20 minutes.
-
Don’t overload it with sauce between every layer.
Gluten-free option
Use gluten-free lasagna noodles. For the sauce, replace flour with cornstarch:
-
mix 2 tablespoons cornstarch with 2 tablespoons cold milk
-
whisk that slurry into hot milk as it simmers
It thickens quickly, so keep stirring.
Variations and add-ins
Add artichokes
Chopped artichoke hearts tucked into the mushroom layer are so good here. Drain them well and chop small.
Add sun-dried tomatoes
A small handful adds a sweet-tart bite that balances the cream sauce. Chop them finely so they distribute evenly.
Add more greens
Spinach is classic, but you can do half spinach, half kale for a slightly heartier texture.
Add protein
If you want a more filling lasagna:
-
shredded rotisserie chicken mixed into the mushrooms
-
cooked crumbled sausage (if you want a stronger flavor)
If you add meat, keep the mushrooms. They still bring great texture and savoriness.
Make it extra cheesy
Add a layer of provolone or fontina. Both melt beautifully and give you that gooey pull.
What to serve it with
Creamy lasagna loves simple sides.
-
A crisp green salad with a tangy vinaigrette
-
Roasted broccoli or roasted asparagus
-
Garlic bread or a warm baguette
-
A simple tomato cucumber salad for freshness
-
Roasted carrots if you want something slightly sweet next to the savory lasagna
If you’re serving this for guests, a salad and bread make it feel like a full spread without extra work.
Make ahead, storage, and freezing
Make ahead
You can assemble the lasagna up to 24 hours in advance.
Cover tightly and refrigerate. When baking from cold, add 10–15 minutes to the covered bake time so it heats through evenly.
Storage
Store leftovers in the fridge for up to 5 days.
The texture often gets even better after a night in the fridge. The layers settle and slice beautifully.
Reheating
-
Oven: cover with foil and reheat at 350°F for 20–25 minutes
-
Microwave: reheat a slice in 1–2 minute bursts until hot
If the slice looks a little dry, spoon a little extra sauce (or even a splash of milk) over it before reheating.
Freezing
This lasagna freezes well.
To freeze unbaked:
Assemble in a freezer-safe dish, wrap tightly, freeze up to 3 months. Thaw overnight in the fridge, then bake as directed.
To freeze baked slices:
Cool completely, slice, wrap individual pieces, and freeze. Great for quick lunches.
Troubleshooting
My lasagna is watery
Most common causes:
-
mushrooms weren’t cooked long enough
-
spinach wasn’t squeezed dry
-
fresh mozzarella released moisture
-
sauce wasn’t thick enough
Fix for next time: cook mushrooms longer, squeeze spinach harder, and use low-moisture mozzarella.
The top is browning too fast
Cover loosely with foil for the last 10 minutes. Every oven runs a little different.
The noodles feel firm
If using oven-ready noodles, make sure there’s enough sauce touching them. Dry noodle edges won’t soften.
Also, baking covered for the first portion is key. Steam helps noodles cook through.
The sauce is lumpy
Whisk constantly while adding milk. If lumps happen anyway, don’t panic. You can blend the sauce briefly with an immersion blender, or pour it through a fine strainer.

Creamy Spinach & Mushroom Lasagna
Ingredients
Lasagna
- 12 lasagna noodles regular or oven-ready
- 2 tablespoons olive oil
- 1 ½ pounds mushrooms cremini or mixed, sliced and chopped
- 1 small yellow onion or 2 shallots diced
- 4 cloves garlic minced
- 6 ounces fresh spinach or 10 oz frozen spinach, thawed and squeezed dry
- 1 teaspoon salt divided, plus more to taste
- ½ teaspoon black pepper divided
- 1 teaspoon Italian seasoning or dried oregano
- 3 cups shredded low-moisture mozzarella cheese divided
- ½ cup grated Parmesan cheese divided
Ricotta layer
- 15 ounces whole milk ricotta
- 1 large egg
- ¼ cup grated Parmesan
- ¼ teaspoon salt
- ¼ teaspoon black pepper
- Optional: 2 tablespoons chopped parsley
Creamy sauce
- 6 tablespoons unsalted butter
- ⅓ cup all-purpose flour
- 5 cups milk or 4 cups milk + 1 cup half-and-half
- 1 cup grated Parmesan cheese
- ½ teaspoon salt plus more to taste
- ½ teaspoon black pepper
- Pinch of nutmeg optional
Instructions
- Preheat the oven to 375°F and grease a 9×13-inch baking dish.
- If using regular noodles, cook in salted water until just flexible. Drain and lay flat. (Skip if using oven-ready noodles.)
- Heat olive oil in a large skillet over medium-high heat. Add mushrooms and cook until browned and the pan is mostly dry, 10–12 minutes. Add onion and cook 2–3 minutes. Add garlic for 30 seconds. Season with ½ teaspoon salt, ¼ teaspoon pepper, and Italian seasoning.
- Add spinach and cook until wilted. Transfer to a colander, cool slightly, then squeeze dry. Chop and stir back into mushrooms.
- Make the sauce: melt butter in a saucepan over medium heat. Whisk in flour and cook 1 minute. Slowly whisk in milk. Simmer 5–7 minutes until thickened. Reduce heat and stir in Parmesan, salt, pepper, and nutmeg (optional).
- Mix ricotta layer: combine ricotta, egg, Parmesan, salt, pepper, and parsley (optional).
- Assemble: spread a thin layer of sauce in the dish. Add noodles, ricotta, mushroom-spinach mixture, mozzarella, then sauce. Repeat layers, finishing with sauce and remaining mozzarella + a sprinkle of Parmesan on top.
- Cover with foil and bake 25 minutes. Uncover and bake 15–20 minutes until bubbly and golden.
- Rest 15–20 minutes before slicing and serving.
Notes








