01 - Preheat oven to 400°F and lightly grease a 9 x 13 inch baking dish.
02 - Combine butternut squash cubes, olive oil, salt, and pepper. Spread on a baking sheet and roast for 20 minutes, stirring halfway, until tender and lightly golden.
03 - In a large pot of boiling salted water, cook pasta for 2 minutes less than package directions. Drain and set aside.
04 - In a large saucepan over medium heat, melt butter. Sauté onion for 3-4 minutes until softened, then add garlic and cook for 1 minute.
05 - Stir in flour and cook for 1 minute. Gradually whisk in milk and heavy cream, continuing to stir until sauce is thickened, approximately 4-5 minutes.
06 - Remove from heat and stir in Parmesan cheese, salt, black pepper, and nutmeg until sauce becomes smooth and creamy.
07 - In a large mixing bowl, gently fold together cooked pasta, roasted butternut squash, and Alfredo sauce until thoroughly coated.
08 - Transfer mixture to the greased baking dish, top evenly with mozzarella and additional Parmesan cheese.
09 - Bake for 20 minutes or until the cheese is golden and bubbling. Allow dish to rest for 5 minutes before serving. Garnish with fresh parsley if desired.