Ham and Broccoli Casserole: Green Broccoli and a Sauce That Is Not Grainy

9 min read

Two things go wrong with this casserole, and they go wrong independently of each other. The broccoli turns the color of an old army jacket, and the cheese sauce goes grainy and slicks oil out at the edges. You can fix one and still be stuck with the other.

Both failures come from heat applied at the wrong moment. The broccoli gets gray because it was cooked twice — boiled soft, then baked for another forty minutes. The sauce breaks because the cheddar went into a pot that was still sitting on a hot burner.

So the broccoli here gets two minutes of boiling water and a hard stop in an ice bath, and the cheese goes in with the pot off the stove entirely. Neither change costs any extra time. Together they are the whole difference between this and the version you have had at a potluck.

Why This Works

Cheddar is an emulsion of fat, water, and protein, and above roughly 170°F that emulsion lets go — the proteins tighten into grains and squeeze the fat out as a visible oil slick. Pull the béchamel off the burner, wait a minute, and then stir the cheese in. The residual heat is plenty to melt it and not enough to break it.

Ingredients

This fills a 9×13 dish or a large oval gratin and feeds six as dinner, eight if there is bread and salad on the table.

For the Casserole

  • 2 pounds broccoli (about 2 large heads), florets cut into 1 1/2-inch pieces, stems peeled and sliced
  • 2 tablespoons kosher salt, for the blanching water only
  • 2 1/2 cups cooked ham, cut into 1/2-inch dice (about 1 pound)
  • 4 tablespoons unsalted butter
  • 1 small yellow onion, minced
  • 1/4 cup all-purpose flour
  • 3 cups whole milk, warmed
  • 1 teaspoon Dijon mustard
  • 1/2 teaspoon black pepper
  • 1/4 teaspoon freshly grated nutmeg
  • Pinch of cayenne
  • 8 ounces sharp cheddar, grated from a block (about 2 cups)
  • 2 ounces Gruyère, grated

For the Top

  • 3/4 cup panko breadcrumbs
  • 2 tablespoons unsalted butter, melted
  • 1/4 cup grated Gruyère

Easy Swap

Frozen broccoli works and is a real time saver. Skip the blanching entirely, thaw it completely, and then squeeze it dry in a towel — frozen florets carry much more water than fresh ones. The texture is softer, with none of the snap. Cauliflower is a straight substitution at the same weight, and it needs 3 minutes in the water instead of 2.

How to Make It

Prep: 20 minutes  |  Bake: 35 minutes  |  Serves: 6 to 8

  1. Heat the oven to 375°F. Bring a large pot of water to a boil, add the 2 tablespoons of salt, and set a big bowl of ice water next to the stove.
  2. Boil the broccoli florets and sliced stems for exactly 2 minutes, then lift everything straight into the ice water. Once it is cold, drain it and spread it on a clean towel. Dry it properly — florets hold water in their heads and that water ends up in your sauce.
  3. Melt the 4 tablespoons of butter in a saucepan over medium heat and cook the onion 4 minutes until soft and translucent. Sprinkle the flour over and whisk constantly for 90 seconds, until it smells faintly like toast.
  4. Pour the warm milk in slowly, whisking the whole time. Bring it to a bare simmer and cook 5 minutes, until it coats the back of a spoon. Stir in the Dijon, pepper, nutmeg, and cayenne. Add no salt.
  5. Take the pan completely off the burner and let it stand 1 minute. Then add the cheddar and Gruyère in three handfuls, stirring each one until it has fully melted before the next goes in. The sauce should turn glossy and smooth.
  6. Taste the sauce. Then taste a piece of your ham. Between the ham and two kinds of aged cheese the dish is already seasoned, so if it needs anything, it is pepper or another half teaspoon of Dijon.
  7. Fold the dried broccoli and the diced ham into the sauce and pour it into a buttered 9×13 dish. Toss the panko with the melted butter and the 1/4 cup of Gruyère and scatter it over the top.
  8. Bake uncovered 30 to 35 minutes, until the crumbs are golden and the sauce is bubbling at the corners of the dish. Rest 10 minutes before serving so the sauce sets up enough to hold a spoonful together.

Don’t Do This

Do not use bagged pre-shredded cheese, and do not add the cheese while the pan is still on the burner. Bagged shreds are coated in potato starch or powdered cellulose to keep them from clumping, and that coating does not dissolve — it lands in your sauce as grit. Adding cheese over direct heat breaks the emulsion in under a minute. Between them these two shortcuts cause nearly every grainy cheese sauce.

Can You Make It the Night Before?

Yes — Assemble Up to 24 Hours Ahead

Blanch and dry the broccoli up to three days ahead and keep it in a bag with a paper towel in it. You can also assemble the whole thing and refrigerate it up to 24 hours — hold the panko back until the dish goes in the oven, and add about 12 minutes to the bake since it is starting cold.

The sauce is the part that changes overnight. A flour-thickened cheese sauce sets almost solid in the refrigerator and looks alarming when you pull the dish out. It loosens fine in the oven. What it will not survive is being reheated hard on a stovetop to loosen it first, which breaks it the same way overheating it the first time would.

If you are going further ahead than a day, make the sauce the day you bake and only pre-blanch the broccoli. Cheese sauces go slightly grainy after about 48 hours in the refrigerator no matter how carefully you built them, and there is no way to bring them back.

I would not freeze this one. Broccoli that has been frozen after blanching comes out of the thaw limp and olive-colored, and a flour-and-dairy sauce splits as it thaws. Leftovers keep three days covered, and they reheat best in a 325°F oven rather than a microwave — gentler heat keeps the sauce together.

Two Salty Ingredients, and One Place to Add Salt

The ham is cured and the cheese is aged, and both of those processes are built on salt. A pound of ham and ten ounces of sharp cheese is a lot of salt arriving in one dish, and neither one is negotiable — they are the recipe.

So the béchamel gets none. Not a reduced amount, none. A plain white sauce tastes flat and underseasoned on its own, and that is exactly what you want at that stage, because the cheese is about to fix it and the ham is about to fix it again.

The one place salt belongs is the blanching water, and it should be aggressively salted — two full tablespoons. That water seasons the broccoli from the inside in the two minutes it is boiling, and then you pour all of it down the drain. It is the only seasoning in this recipe that does not also add salt to the finished dish.

If Your Ham Is Country Ham

Dry-cured country ham is in a different league of salty than the wet-cured kind. If that is what you have, use a cup instead of two and a half, swap the sharp cheddar for a mild one, and add a cup of cooked rice or a second pound of broccoli to make up the volume.

Keeping the Broccoli Green and the Sauce Thick

Two minutes in boiling water, then straight into ice. The boil sets the bright green by driving the gas out of the spaces between the cells, and the ice bath stops the cooking before the chlorophyll starts breaking down into the olive-gray color. Skip the ice and the residual heat keeps working for several minutes — long enough to undo the whole point.

After that, the broccoli only ever gets warmed. It goes into the oven already cooked, so 35 minutes of baking is not cooking it further so much as heating it through. That is why the bake time here is shorter than most casseroles.

Then dry it, and dry it more than feels necessary. A head of broccoli is mostly water, and a blanched floret is a little cup that holds a tablespoon of it. Undried broccoli is the single most common reason a cheese casserole comes out soupy, and it is also why I bake this one uncovered — any water that does get in has somewhere to go as steam.

One more thing about the florets: cut them a bit larger than you would for a stir-fry, around an inch and a half. Small florets have more surface area for the sauce to cling to, which sounds good until you realize it also means they soften faster and hold more water in the first place.

Rachel’s Tip

Do not throw the broccoli stems away. Peel the tough outer layer off with a vegetable peeler, slice the inside into coins, and blanch them with the florets. They are sweeter than the tops, and because they are dense they hold their texture through the bake better than the florets do.

Questions People Ask

Why is my cheese sauce grainy and oily?

The cheese got too hot. Above about 170°F the proteins in cheddar contract and wring out the fat, which is the oil you are seeing, and the solids clump into grains. Take the pan off the heat before the cheese goes in, and if it has already broken, whisk in a splash of cold milk off the heat — it sometimes brings it back. Bagged pre-shredded cheese is the other cause, and that grit cannot be fixed.

Why is my ham and broccoli casserole watery?

Undried broccoli, almost every time. Blanched florets trap a surprising amount of water in their heads, and it all comes out in the oven and thins the sauce. Spread them on a towel and pat them genuinely dry. The second cause is covering the dish with foil, which traps steam that would otherwise escape.

Can I add rice or pasta to make it stretch further?

Yes, and this takes it a long way. Two cups of cooked white rice or small cooked pasta folded in with the ham will feed ten instead of six. Add 1/2 cup more milk to the sauce if you do, because starch keeps absorbing liquid in the oven and the dish will tighten up more than you expect.

What kind of cheese melts best here?

A young-to-medium sharp cheddar grated from a block is the best balance of flavor and melt. Very aged cheddar — anything over about two years — has lost enough moisture that it breaks more easily, so if that is what you have, cut it with the Gruyère at closer to half and half. Gruyère, Comté, and fontina all melt beautifully and all add salt, so keep the total around ten ounces.

Can I make this without the flour?

Yes. Skip the roux, warm the milk with the onion and the seasonings, and thicken it with 3 tablespoons of cornstarch whisked into 1/3 cup of cold milk, stirred in and simmered 2 minutes. Then pull it off the heat for the cheese exactly as written. A cornstarch-thickened sauce is a little glossier and slightly less stable on reheating, so eat the leftovers within two days.

Have more ham than you have broccoli? The same cheese sauce works over sliced potatoes, and that recipe is built around using up a holiday ham: Ham and Potato Casserole: What to Actually Do With Leftover Holiday Ham.