Boil the pasta: Bring a large pot of salted water to a boil. Cook the pasta until just shy of al dente.
Reserve about 1 cup of pasta water, then drain.
Sauté the mushrooms: Heat olive oil and butter in a large skillet over medium-high heat. Add mushrooms in an even layer. Let them sear without stirring for 2–3 minutes, then cook, stirring occasionally, until browned and reduced, about 6–8 minutes.
Season with a pinch of salt.
Add aromatics: Lower heat to medium. Stir in onion and cook until translucent, about 3–4 minutes. Add garlic and red pepper flakes.
Cook 30–60 seconds until fragrant.
Deglaze: Pour in white wine or broth. Scrape up any browned bits. Simmer 2–3 minutes until the liquid reduces by about half.
Make it creamy: Stir in the heavy cream.
If you prefer a looser sauce, add the milk. Simmer gently for 2–3 minutes. Season with salt and pepper.
Wilt the spinach: Add spinach in batches.
Toss until just wilted, 1–2 minutes. Don’t overcook; you want it bright green.
Cheese and lemon: Reduce heat to low. Stir in Parmesan and lemon zest until smooth.
Add lemon juice to taste. If the sauce seems thick, splash in some reserved pasta water.
Combine with pasta: Add the drained pasta to the skillet. Toss for 1–2 minutes so the sauce clings.
Adjust seasoning. Add more pasta water for silkiness if needed.
Finish and serve: Top with more Parmesan, black pepper, and chopped parsley or basil. Serve hot.