Fill a large pot with water, add a pinch of salt, and bring it to a boil. Add 2 cups of elbow macaroni and cook according to the package instructions until al dente, about 7-8 minutes. Drain the pasta well and set aside.
In a medium saucepan, melt 2 tablespoons of butter over medium heat. Once melted, sprinkle in 2 tablespoons of all-purpose flour. Whisk continuously for about 1-2 minutes to cook out the raw flour taste and create a roux.
Gradually pour in 2 cups of milk while whisking to prevent lumps. Continue whisking as the mixture thickens, about 4-5 minutes. Stir in 1/2 teaspoon each of garlic powder and onion powder, plus salt and pepper to your liking.
Lower the heat and add 1 cup shredded cheddar cheese and 1 cup shredded mozzarella cheese. Stir until melted and smooth, creating a rich and creamy cheese sauce.
In a separate bowl, toss 1 cup of shredded cooked chicken with 1/2 cup of buffalo sauce until evenly coated.
Add the cooked macaroni and buffalo chicken to the cheese sauce. Stir gently to combine everything thoroughly, ensuring the pasta is evenly coated with the spicy, cheesy sauce.
Transfer to serving bowls and sprinkle with chopped green onions for a fresh crunch and pop of color. Serve immediately while hot and melty.