Ingredients
Scale
- 1 pound elbow macaroni or cavatappi pasta
- 4 large yellow onions, thinly sliced
- 4 tablespoons unsalted butter, divided
- 1 tablespoon olive oil
- 2 cloves garlic, minced
- 1 teaspoon fresh thyme leaves (or ½ teaspoon dried thyme)
- 1 tablespoon all-purpose flour
- 4 cups beef broth (for richer flavor) or vegetable broth (for a lighter version)
- 1 cup whole milk
- 1 cup heavy cream
- 2 cups shredded Gruyère cheese
- 1 cup shredded sharp white cheddar cheese
- 1 teaspoon Worcestershire sauce
- Salt and freshly ground black pepper, to taste
- 1 cup grated Parmesan cheese, for topping
- Fresh parsley, chopped, for garnish (optional)
Substitution tips: If Gruyère isn’t available, Swiss cheese or a mild mozzarella can work. For a vegetarian twist, use mushroom broth instead of beef broth. You can also swap elbow macaroni for shells or penne, depending on your preference.
Instructions
- Bring a large pot of salted water to a boil. Cook the macaroni according to package instructions until just al dente. Drain and set aside, reserving about ½ cup of pasta water.
- In a large skillet or heavy-bottomed pan, heat 2 tablespoons of butter and the olive oil over medium-low heat. Add the thinly sliced onions and a pinch of salt. This is a slow process—stir occasionally and let the onions caramelize gently for 30-40 minutes. Be patient here; this step builds the heart of the flavor. Mama Lou always said, “Good things take time, Sofia.”
- Once the onions are deep golden and soft, add the minced garlic and thyme. Cook for another 2 minutes until fragrant.
- Sprinkle the flour over the onions and stir well to coat. Cook for 1-2 minutes to remove the raw flour taste. This helps thicken the sauce.
- Slowly pour in the beef broth while stirring constantly to avoid lumps. Bring the mixture to a simmer and cook for about 5 minutes until slightly thickened.
- Reduce heat to low and stir in the milk and heavy cream. Let it warm through but don’t boil. Add Worcestershire sauce, salt, and pepper to taste. This is where the sauce becomes luscious and creamy.
- Gradually add the shredded Gruyère and cheddar cheeses, stirring until melted and smooth. If the sauce seems too thick, add reserved pasta water a little at a time until it reaches your desired consistency.
- Fold the cooked pasta into the cheese and onion sauce until evenly coated. Taste and adjust seasoning if needed. Ouma always reminded me to taste as you go—it’s the best way to make a dish your own.
- Preheat your oven to 375°F (190°C). Transfer the mac and cheese to a buttered baking dish. Sprinkle the grated Parmesan cheese evenly over the top.
- Bake for 20-25 minutes until the top is golden and bubbly. For an extra crispy finish, you can broil for the last 2-3 minutes, but watch carefully to avoid burning.
- Remove from the oven and let it rest for 5 minutes before serving. Garnish with fresh parsley if desired.
- Prep Time: 15 minutes
- Cook Time: 30 minutes
- Category: Main Dish
- Method: Cooking
- Cuisine: International

