In a large pot bring water to a boil and add 8 ounces pasta shells. Cook according to package directions, usually around 8 to 10 minutes, until al dente. Stir occasionally to prevent sticking.
Add 12 ounces broccoli florets to the boiling water for the last 3 minutes of cooking. Drain and set aside.
Add 2 tablespoons unsalted butter in the same pot and melt over medium heat. Whisk in ¼ cup all-purpose flour and cook for 1 minute to create a roux.
Slowly whisk in 2 cups milk, stirring constantly until the mixture thickens, about 3 to 5 minutes.
Once thickened, add in 2 cups shredded sharp cheddar cheese, ½ teaspoon onion powder, and ½ teaspoon garlic powder. Stir until the cheese melts and the sauce is creamy.
Add the drained pasta shells and broccoli, tossing to coat everything evenly in the cheese sauce.
Season with salt and pepper to taste, then serve immediately.