Preheat your oven to 425°F (220°C). Toss the peeled and cubed butternut squash with olive oil, salt, and pepper on a baking sheet. Spread it out evenly and roast for about 25 minutes, turning halfway through until the squash is tender and lightly caramelized on the edges. Roasting brings out a natural sweetness that makes this dish so comforting.
While the squash roasts, bring a large pot of salted water to a boil and cook the pasta according to package directions until al dente. Before draining, reserve about 1/2 cup of the pasta water. This starchy water will help create a silky sauce when combined with the other ingredients.
In a large skillet over medium heat, cook the Italian sausage, breaking it up with a spoon until browned and cooked through, about 7-8 minutes. Drain any excess fat if necessary. Add the minced garlic and cook for another minute until fragrant. This step builds the savory backbone of the dish.
Add the fresh spinach to the skillet with the sausage and cook until just wilted, about 2 minutes. Then gently fold in the roasted butternut squash cubes, stirring to combine everything. The spinach adds a pop of color and freshness, while the squash adds creaminess and sweetness.
Add the cooked pasta directly to the skillet with the sausage, spinach, and squash. Pour in the reserved pasta water a little at a time, stirring gently, until everything is nicely coated and the sauce reaches your preferred consistency. Stir in the grated Parmesan cheese, which melts into the pasta water for a creamy finish.
Taste and adjust seasoning with salt, pepper, and red pepper flakes if using. Garnish with fresh herbs and extra Parmesan if you like. Serve immediately for the best texture and flavor.