Boil the Spaghetti
Cook spaghetti in salted boiling water until al dente. Drain and set aside, reserving ½ cup of the pasta water.
Make the Roux
In a large saucepan, melt butter over medium heat. Whisk in flour and stir constantly for about 1 minute.
Add Milk and Cream
Gradually whisk in warm milk and cream. Continue stirring until the sauce thickens, about 4–5 minutes.
Stir in Cheese
Lower heat and slowly stir in cheddar, mozzarella, and optional parmesan until melted and smooth.
Season
Add salt, pepper, garlic powder, and mustard powder. Taste and adjust as needed.
Combine Pasta and Sauce
Add cooked spaghetti to the cheese sauce. Toss until evenly coated. Add a splash of pasta water if the sauce is too thick.
Optional Baked Version
Transfer to a baking dish, top with breadcrumbs and extra cheese. Bake at 375°F (190°C) for 15–20 minutes until golden and bubbly.
Serve and Enjoy
Garnish with parsley or green onions and serve hot!