1. Preheat the oven to 350 degrees.
2. Prepare pasta according to directions. Drain and set aside. Lightly grease a baking dish.
3. Heat butter in a Dutch oven over medium-high heat; saute onion 5 minutes or until just brown. Add garlic, and cook about 1 minute. Reduce heat to medium-low and add spinach; cover and cook 5 minutes or until spinach is wilted, stirring occasionally.
4. Sprinkle spinach mixture with flour. Cook uncovered, stirring constantly, 1 minute. Gradually add milk, stirring well. Cook 5 minutes, stirring often, until thickened and smooth. Remove from heat; stir in cooked pasta, mozzarella, ricotta, sugar, salt and pepper, and red pepper. Place into prepared dish and sprinkle evenly with Parmesan.
5. Bake for 15 to 20 minutes.