01 - Bring a large pot of salted water to a boil. Cook pasta according to package instructions until al dente. Drain and set aside.
02 - In a large skillet, heat olive oil over medium heat. Add onion and cook for 2–3 minutes until softened. Add garlic and sauté for 1 minute until fragrant.
03 - Add fresh spinach to the skillet and cook, stirring, until wilted (2–3 minutes). Remove spinach mixture and set aside.
04 - In the same skillet, melt butter over medium heat. Whisk in flour to create a roux; cook for 1 minute.
05 - Gradually add milk, whisking constantly to avoid lumps. Continue stirring until sauce thickens (about 4–5 minutes).
06 - Reduce heat to low. Stir in cream cheese, mozzarella, and half of the Parmesan. Season with salt, pepper, and nutmeg (if using) until smooth and creamy.
07 - Add the wilted spinach mixture and cooked pasta to the sauce. Toss until well combined and heated through.
08 - Serve immediately, garnished with remaining Parmesan cheese.