Step 1
In a large pot over medium heat, heat oil. Add onions and cook until soft, about 5 minutes. Add garlic and cook until fragrant, about 1 minute more.
Step 2
Add pasta and broccoli, then stir in water and half-and-half. Season with salt, pepper, and red pepper flakes. Bring to a boil, reduce heat and let simmer, stirring occasionally, until pasta is al dente, 12 to 14 minutes.
Step 3
Add cheeses and stir until melted.