Gather all ingredients. Preheat the oven to 350°F (175°C). Grease an 8-inch square baking dish.
STEP 2
In a large pot, bring lightly salted water to a boil. Add macaroni and simmer for 8 minutes; it will finish cooking in the oven. Drain and transfer to the prepared dish.
STEP 3
Melt 1/4 cup butter in a medium skillet over low heat. Whisk in flour and stir until paste-like and light golden brown, about 3 to 5 minutes.
STEP 4
Gradually whisk in 2 1/2 cups milk into the flour mixture, and bring to a simmer.
STEP 5
Stir in shredded Cheddar and Parmesan cheeses; season with salt and pepper. Cook until cheese is melted and sauce thickens, about 3 to 5 minutes.
STEP 6
Pour cheese sauce over macaroni and stir until well combined.
STEP 7
For the topping, melt 2 tablespoons butter in a skillet over medium heat. Add bread crumbs and cook until well coated and browned.
STEP 8
Spread bread crumbs over the macaroni mixture, then sprinkle with paprika.
STEP 9
Bake until the topping is golden brown and the macaroni is bubbling, about 30 minutes.