Transform yesterday’s holiday ham into tonight’s comfort food masterpiece with this leftover ham mac and cheese that turns simple ingredients into a creamy, cheesy dinner everyone will love. This recipe gives new life to leftover ham while creating a restaurant-quality meal in under 45 minutes.
SERVES: 4 | PREP: 15 MIN | COOK: 25 MIN | TOTAL: 40 MIN
Why This Leftover Ham Mac and Cheese Works
You’ve got ham sitting in your fridge, and pasta in the pantry. That’s all you need to create something special.
This recipe builds layers of flavor that make people forget they’re eating leftovers. The ham gets crispy edges while the pasta cooks in a sauce that clings to every piece.
I’ve tested this dozens of times with different cheeses and cooking methods. This version gives you the best texture without drying out the ham or making the sauce grainy.
Ingredients
For the Cheese Sauce
| Ingredient | Amount |
|---|---|
| Unsalted butter | 4 tablespoons |
| All-purpose flour | 1/4 cup |
| Whole milk | 2 cups |
| Heavy cream | 1 cup |
| Sharp cheddar cheese, shredded | 2 cups |
| Gruyere cheese, shredded | 1 cup |
| Dijon mustard | 1 tablespoon |
| Garlic powder | 1/2 teaspoon |
| Onion powder | 1/2 teaspoon |
| Salt | 1 teaspoon |
| Black pepper | 1/2 teaspoon |
| Cayenne pepper (optional) | 1/4 teaspoon |
For the Pasta and Ham
| Ingredient | Amount |
|---|---|
| Elbow macaroni | 1 pound |
| Leftover ham, diced | 2 cups |
| Salt for pasta water | 2 tablespoons |
For the Topping
| Ingredient | Amount |
|---|---|
| Panko breadcrumbs | 1 cup |
| Melted butter | 2 tablespoons |
| Parmesan cheese, grated | 1/4 cup |
| Fresh parsley, chopped | 2 tablespoons |
Step-by-Step Instructions
Phase 1: Preparing Your Ingredients (5 minutes)
Step 1: Fill a large pot with 4 quarts of water and add 2 tablespoons of salt. Place it over high heat with the lid on.
The salt seasons the pasta from the inside out. You want the water to taste like the ocean when you dip your finger in it.
Step 2: While the water heats, dice your leftover ham into 1/2-inch cubes. Keep the pieces uniform so they heat evenly.
If your ham has a thick layer of fat or glaze on the outside, leave it on. That adds flavor to the dish.
Step 3: Shred your cheddar and Gruyere cheeses using the large holes of a box grater. Don’t use pre-shredded cheese from a bag.
Pre-shredded cheese contains anti-caking agents that prevent smooth melting. Fresh-shredded cheese creates a silkier sauce.
Step 4: Set out all your measured ingredients in small bowls. This makes cooking faster and prevents mistakes.
Professional cooks call this “mise en place,” and it’s the secret to stress-free cooking.
Phase 2: Cooking the Pasta (10 minutes)
Step 5: When your water reaches a rolling boil, add 1 pound of elbow macaroni. Stir immediately to prevent sticking.
Set your timer for 2 minutes less than the package directions. The pasta finishes cooking in the cheese sauce later.
Step 6: Stir the pasta every 2 minutes to keep it from clumping together. The water should stay at a strong boil the entire time.
Watch for the pasta to just lose its hard center when you bite a piece. It should still have a firm texture.
Step 7: Before draining, scoop out 1 cup of the starchy pasta water and set it aside. You’ll use this to adjust the sauce consistency later.
That cloudy water contains starch that helps the cheese sauce cling to the pasta.
Step 8: Drain the pasta in a colander but don’t rinse it. The surface starch helps the sauce stick better.
Give the colander a few good shakes to remove excess water, then set it aside while you make the sauce.
Phase 3: Building the Cheese Sauce (8 minutes)
Step 9: In the same pot you cooked the pasta, melt 4 tablespoons of butter over medium heat. Watch it carefully so it doesn’t brown.
The butter should just melt and start to foam slightly. If it turns brown, it’s too hot.
Step 10: Add 1/4 cup of flour to the melted butter. Whisk constantly for 2 minutes until the mixture turns light golden.
This flour-butter mixture (called a roux) cooks out the raw flour taste and creates the base for your sauce. It should smell slightly nutty.
Step 11: Slowly pour in 2 cups of whole milk while whisking continuously. Start with just a splash, whisk until smooth, then add more.
Adding the milk gradually prevents lumps from forming. The sauce will thicken as it heats.
Step 12: Add 1 cup of heavy cream and continue whisking. Bring the mixture to a gentle simmer, not a full boil.
You’ll see small bubbles around the edges of the pot. The sauce should coat the back of a spoon when it’s ready.
Step 13: Remove the pot from heat and add the cheeses one handful at a time. Stir each addition until completely melted before adding more.
Adding cheese off the heat prevents it from breaking and getting grainy. The residual heat melts it perfectly.
Step 14: Stir in 1 tablespoon of Dijon mustard, 1/2 teaspoon each of garlic powder and onion powder, 1 teaspoon of salt, 1/2 teaspoon of black pepper, and 1/4 teaspoon of cayenne if you want a little heat.
The mustard adds tang that balances the richness. You won’t taste mustard flavor, just a brighter overall taste.
Phase 4: Combining Everything (7 minutes)
Step 15: Add the drained pasta and 2 cups of diced ham to the cheese sauce. Stir gently to coat everything evenly.
If the sauce seems too thick, add the reserved pasta water 2 tablespoons at a time until you reach the consistency you want.
Step 16: Preheat your broiler to high. While it heats, mix 1 cup of panko breadcrumbs with 2 tablespoons of melted butter, 1/4 cup of Parmesan cheese, and 2 tablespoons of chopped parsley.
The butter helps the breadcrumbs turn golden and crispy under the broiler.
Step 17: Transfer the leftover ham mac and cheese mixture to a greased 9×13-inch baking dish. Spread it evenly with a spatula.
Make sure the pasta goes all the way to the edges so everything gets topped with the breadcrumb mixture.
Step 18: Sprinkle the breadcrumb mixture evenly over the top. Press it down lightly with your hand so it sticks to the sauce.
Don’t pack it down too hard or it won’t get crispy. Just a gentle press is enough.
Step 19: Place the dish under the broiler on the middle rack. Watch it carefully and remove when the top turns golden brown, about 3-4 minutes.
Broilers vary widely in temperature. Check every minute after the first two minutes to prevent burning.
Step 20: Let the leftover ham mac and cheese rest for 5 minutes before serving. This helps the sauce thicken slightly and makes serving easier.
The dish will be extremely hot right out of the oven. Letting it sit also develops the flavors.
Chef’s Notes
Cheese Selection Matters: The combination of sharp cheddar and Gruyere creates the perfect balance of flavor and melt quality. Cheddar brings bold taste while Gruyere adds creaminess and depth. You can substitute fontina or Swiss for the Gruyere if that’s what you have.
Ham Preparation Tip: Cut your leftover ham into uniform pieces so every bite has the same texture. If you’re using a bone-in ham, remove all the meat and save the bone for soup stock. The edge pieces with caramelized glaze add extra flavor to this leftover ham mac and cheese.
Sauce Consistency: Your cheese sauce should coat the pasta generously but not pool at the bottom of the dish. If it’s too thick, thin it with pasta water. If it’s too thin, simmer it for another minute before adding the pasta. The sauce thickens as it cools.
Broiler Alternative: If you don’t want to use the broiler, bake the dish at 375°F for 15 minutes until the top is golden and crispy. This method takes longer but gives you more control and prevents burning.
Nutrition Information (Per Serving)
- Calories: 785
- Protein: 42g
- Carbohydrates: 68g
- Fat: 38g
- Saturated Fat: 22g
- Fiber: 3g
- Sugar: 8g
- Sodium: 1,245mg
- Calcium: 520mg
Creative Variations
Spicy Southwest Version: Add 1 cup of black beans, 1 cup of corn, 1 diced jalapeño, and 1/2 cup of pepper jack cheese to the basic recipe. Top with crushed tortilla chips instead of breadcrumbs. This variation pairs perfectly with leftover ham hash for a weekend brunch spread.
Vegetable-Loaded: Stir in 2 cups of blanched broccoli florets, 1 cup of sautéed mushrooms, and 1/2 cup of roasted red peppers. The vegetables add nutrition and make the dish more colorful. This works especially well if you have picky eaters who need more greens.
Italian-Style: Replace half the cheddar with 1 cup of mozzarella and add 1/2 cup of sun-dried tomatoes, 2 tablespoons of fresh basil, and 1/4 cup of chopped olives. Use Italian breadcrumbs for the topping. This Mediterranean twist works great alongside leftover ham omelet for a complete dinner.
Classic Southern: Add 1/2 cup of diced pimentos and use all sharp cheddar cheese. Mix in 1 teaspoon of hot sauce and top with crushed Ritz crackers instead of panko. This version tastes like the potluck favorite everyone requests.
Storage and Reheating
Refrigerator Storage: Store leftover ham mac and cheese in an airtight container for up to 4 days. Let it cool to room temperature first, but don’t leave it out for more than 2 hours.
The sauce may thicken in the fridge, which is completely normal.
Freezing Instructions: Freeze individual portions in freezer-safe containers for up to 3 months. Don’t add the breadcrumb topping before freezing.
Thaw overnight in the refrigerator before reheating. Add fresh breadcrumbs when you reheat for the best texture.
Reheating Method: Add 2 tablespoons of milk to the portion you’re reheating. Cover with foil and bake at 350°F for 20 minutes, then remove the foil and broil for 2 minutes to crisp the top.
You can also microwave individual portions on 50% power for 3-4 minutes, stirring halfway through.
Make-Ahead Strategy: Prepare the entire dish up to 24 hours ahead, stopping before adding the breadcrumb topping. Cover tightly and refrigerate.
When you’re ready to serve, add the breadcrumbs and bake at 375°F for 25 minutes until heated through and golden on top.
Troubleshooting Common Problems
Problem: Grainy or Separated Cheese Sauce
Solution: This happens when the sauce gets too hot or the cheese is added too quickly. Remove the pot from heat before adding cheese, and add it gradually while stirring. If your sauce breaks, whisk in 1 tablespoon of cold cream to bring it back together. Using freshly shredded cheese instead of pre-shredded prevents this issue.
Problem: Sauce Too Thin and Watery
Solution: Your roux needs more cooking time to thicken properly, or you added too much liquid. Simmer the sauce for an extra 2-3 minutes before adding the cheese. If it’s still thin after adding the pasta, the residual heat will thicken it as it sits. You can also add an extra 1/4 cup of shredded cheese to help thicken it.
Problem: Dry Pasta After Baking
Solution: Make your cheese sauce slightly thinner than you think it should be. The pasta absorbs liquid as it sits and bakes. Add extra pasta water when mixing everything together. Cover the dish with foil for the first 10 minutes of baking to trap moisture, then uncover to brown the top.
Problem: Burnt Breadcrumb Topping
Solution: Move your oven rack lower so the dish sits farther from the broiler element. Watch the dish constantly while broiling, checking every 30 seconds after the first minute. If your broiler runs hot, use the bake method at 375°F instead. You’ll get a golden top without the risk of burning.
Problem: Ham Tastes Dry or Tough
Solution: Cut your ham into smaller 1/4-inch pieces so they heat through without drying out. If your leftover ham is already dry, toss it in 1 tablespoon of melted butter before adding it to the pasta. You can also add the ham to the sauce 1 minute before mixing in the pasta, giving it time to absorb moisture from the cheese sauce.
Equipment Essentials

- Large pot (6-8 quart capacity) for boiling pasta and making sauce
- Whisk for smooth sauce without lumps
- Box grater for shredding fresh cheese
- Colander for draining pasta
- 9×13-inch baking dish for serving
- Measuring cups and spoons for accuracy
- Sharp knife and cutting board for dicing ham
- Mixing bowl for breadcrumb topping
- Wooden spoon or silicone spatula for stirring
Shopping List by Section
Dairy Section
- Unsalted butter (6 tablespoons total)
- Whole milk (2 cups)
- Heavy cream (1 cup)
- Sharp cheddar cheese (8 ounces)
- Gruyere cheese (4 ounces)
- Parmesan cheese (1 ounce)
Pantry
- Elbow macaroni (1 pound)
- All-purpose flour (1/4 cup)
- Panko breadcrumbs (1 cup)
- Dijon mustard
- Garlic powder
- Onion powder
- Salt
- Black pepper
- Cayenne pepper (optional)
Meat Section
- Leftover ham (2 cups diced, or about 12 ounces)
Produce
- Fresh parsley
Success Secrets
1. Undercook Your Pasta Intentionally
Take the pasta out 2 full minutes before the package says. It continues cooking in the hot cheese sauce and while baking. This prevents mushy, overcooked pasta in your final dish.
2. Shred Cheese at Home
Pre-shredded cheese contains cellulose that prevents smooth melting. Spend 5 extra minutes grating your own cheese for sauce that’s silky instead of grainy. Buy blocks of cheese on sale and shred them all at once, freezing extras.
3. Reserve Pasta Water Always
That starchy cooking liquid is liquid gold for adjusting sauce consistency. Keep 1 cup handy and add it 1 tablespoon at a time until your sauce reaches the perfect coating texture. You can’t add it later if you forget.
4. Let the Dish Rest
Those 5 minutes of resting time aren’t optional. The sauce thickens, the flavors meld, and the dish becomes easier to serve. If you scoop it immediately, you’ll have a runny mess on the plate.
5. Mix Your Cheeses Strategically
Use 2/3 strong-flavored cheese (like sharp cheddar) and 1/3 mild melting cheese (like Gruyere). This ratio gives you bold flavor with creamy texture. All cheddar tastes great but can get greasy, while all mild cheese lacks personality.
This leftover ham mac and cheese proves that leftovers can be better than the original meal. The combination of creamy cheese sauce, smoky ham, and crispy topping creates layers of flavor and texture that make this dish a family favorite.
You’ll find yourself looking forward to having leftover ham just so you can make this recipe again.



