Ingredients
Macaroni and Cheese:
8 ounces uncooked elbow macaroni
1 small diced onion
1 tsp of minced garlic
¼ cup salted butter
3 tablespoons all-purpose flour
2 ½ cups milk, or more as needed
2 cups shredded sharp Cheddar cheese
½ cup finely grated Parmesan cheese
salt and ground black pepper to taste (Optional)
Bread Crumb Topping:
2 tablespoons salted butter
½ cup dry bread crumbs (panko if the best!)
1 pinch ground paprika
Directions
Preheat the oven to 350 degrees F. Grease an 9x13 baking dish.
Bring a large pot of lightly salted water to a boil. Add macaroni and simmer, stirring occasionally, until tender yet firm to the bite; it will finish cooking in the oven. Drain.
While the macaroni is cooking, melt 1/4 cup butter in a medium skillet over low heat with the onion. When the onion is tender add the garlic and cook for 2 min. Whisk in flour and stir until the mixture becomes paste-like and light golden brown, 3 to 5 minutes.
Gradually whisk 2 1/2 cups milk into the flour mixture, and bring to a simmer. Stir in shredded Cheddar and finely grated Parmesan cheeses; season with salt and pepper. Cook and stir over low heat until cheese is melted and sauce has thickened, 3 to 5 minutes, adding up to 1/2 cup more milk if needed. combine cheese sauce and macaroni and stir until well combined. Transfer to greased baking dish.
Make the bread crumb topping: Melt 2 tablespoons butter in a skillet over medium heat. Add bread crumbs; cook and stir until well coated and browned. Spread bread crumbs over macaroni and cheese, then sprinkle with paprika.
Bake in the preheated oven until topping is golden brown and macaroni and cheese is bubbling, about 30 minutes.