Fresh Green Bean Casserole from Scratch
This green bean casserole is made entirely from scratch, with fresh green beans and a quick homemade mushroom sauce that takes about ten minutes on the stovetop.

It is still the creamy, crunchy-topped classic you expect on the holiday table, just without a single can of soup in sight. And it is weeknight-friendly enough to make on a Tuesday.
Why This Green Bean Casserole Works
I have never liked the grey, mushy version. This one uses fresh beans that keep a little snap, and the sauce actually tastes like mushrooms, not tin. The fried onion topping is the only part I do not make from scratch, but a good store-bought kind gets extra crisp in the oven.
The sauce comes together in one pan while the beans blanch, so the whole thing is ready for the oven in under half an hour. Because the sauce is a simple béchamel loaded with sautéed mushrooms, it freezes beautifully if you want to assemble it a day ahead.
Ingredients

- 1½ lbs fresh green beans, trimmed and halved: look for firm, bright pods without soft spots
- 3 tbsp unsalted butter: salted works too, just ease back on the added salt
- 8 oz cremini mushrooms, thinly sliced: white button mushrooms also work fine
- 1 medium shallot, minced: half a small yellow onion can stand in
- 2 cloves garlic, minced: fresh garlic gives the best punch
- 3 tbsp all-purpose flour: this thickens the sauce without a heavy feel
- 1½ cups whole milk: 2% will work, but the sauce will be a little thinner
- ½ cup low-sodium chicken or vegetable broth: adds depth without making it salty
- 1 tsp kosher salt
- ¼ tsp black pepper
- Pinch of ground nutmeg: optional, but it adds that warm background note classic in cream sauces
- 1 cup crispy fried onions: the kind from a canister, or homemade if you prefer
Variations / Substitutions
- Dairy-free: swap the butter for olive oil, use unsweetened oat milk, and skip any cream
- Gluten-free: use a 1:1 gluten-free flour blend and gluten-free crispy onions
- Mushroom mix: add shiitake or oyster mushrooms for a deeper, woodsier flavor
- Extra cheesy: stir ¼ cup grated Parmesan into the sauce just before assembling
- If you love green beans this much, our simple roasted green beans are worth a look.
How to Make Fresh Green Bean Casserole
Step 1: Blanch the Green Beans

Bring a large pot of heavily salted water to a rolling boil. Add all of the 1½ lbs green beans and cook them for 3 to 4 minutes, just until they turn bright green and are still crisp-tender. Drain immediately and plunge them into a bowl of ice water to stop the cooking.
The beans at this stage should be vibrant in color but still have a pleasant bite, almost like an al dente noodle. Draining them well after the ice bath is important so they do not water down the sauce later.
Step 2: Sauté the Mushrooms and Shallot

Melt the 3 tbsp butter in a large skillet over medium-high heat. Once the butter is foamy, add the sliced mushrooms and minced shallot. Cook for 6 to 8 minutes, stirring only occasionally, until the mushrooms have released their liquid and the edges are deeply golden. Stir in the minced garlic and cook for another minute until fragrant.
Letting the mushrooms sit without stirring for a couple of minutes gives them a chance to brown rather than just steam. That browning is where the big savory flavor comes from, so do not rush it.
Step 3: Build the Creamy Sauce

Sprinkle the 3 tbsp flour over the mushroom mixture and stir constantly for 1 minute to cook out the raw flour taste. Now, slowly whisk in the 1½ cups milk and ½ cup broth, a little at a time, making sure no lumps form. Bring the sauce to a gentle simmer and cook for 3 to 4 minutes, stirring often, until it coats the back of a spoon. Season with the 1 tsp salt, ¼ tsp pepper, and nutmeg.
The sauce will look thin at first but thickens quickly as it simmers. It should be silky and pale brown, not dense or pasty. If it gets too thick before you mix with the beans, whisk in a splash of milk.
Step 4: Assemble the Casserole

Drain the green beans well and pat them dry with a clean towel if they still seem wet. Fold them gently into the mushroom sauce, turning everything together until the beans are coated. Transfer the mixture to an 8×8-inch baking dish or a 2-quart casserole.
Use a rubber spatula to scrape every last bit of sauce from the skillet. That sauce is what keeps the casserole creamy all the way through. If you want to do this ahead, stop now, cover, and refrigerate.
Step 5: Bake and Serve with Crispy Onions

Set the oven to 375°F (190°C) and slide the dish onto the middle rack. Bake the unsauced casserole for 20 minutes. Carefully remove it, scatter the 1 cup crispy fried onions evenly over the top, and return to the oven for another 5 to 8 minutes, until the onions are deep golden and the sauce bubbles at the edges.
Let the dish rest for about 5 minutes before spooning it out onto plates. You want to serve it while the onion topping is still crackly and the sauce is hot and silky.
Tips for the Best Green Bean Casserole
- The ice bath after blanching is not just for looks. It stops the cooking so the beans stay bright green and firm, not olive-drab and soggy.
- Really brown the mushrooms. Do not stir them constantly; let them sit in the hot butter until they release their liquid and start to caramelize.
- Assemble the casserole a day ahead, but hold off on the crispy onions. Bake from the fridge, adding 10 minutes to the first bake time, then top and finish.
- For a richer sauce, swap half the milk for heavy cream. It makes the dish feel more indulgent without turning it into a cream bomb.
Bake times by dish size:
| Dish Size | Beans | First Bake | Final Bake with Onions |
|---|---|---|---|
| 8×8 or 2-qt | 1½ lbs | 20 mins | 5-8 mins |
| 9×13 | 2½ lbs | 25 mins | 8-10 mins |
Storing Leftover Casserole
- Refrigerate: Keep leftovers covered in the fridge for up to 4 days. The onions will soften, but the flavor holds.
- Reheating: Warm in a 350°F oven for 15 to 20 minutes to re-crisp the onion topping. A microwave will make them soggy.
What Goes Well With Green Bean Casserole
This casserole was built for a holiday spread. It cuts through the richness of a roasted turkey or prime rib with its earthy, creamy vegetable flavor. It is also brilliant next to a simple roast chicken or a spiral-cut ham, where the crunchy onion top echoes the savory crust on the meat.
Frequently Asked Questions
Can I use frozen green beans?
You can, but they will be softer. Add them straight from the freezer without blanching, and reduce the broth by 2 tablespoons since they release extra water.
Why did my sauce turn out lumpy?
Lumpy sauce usually means the flour was not fully whisked in or the milk was added too fast. Whisk the flour into the butter and mushrooms until no dry specks remain, then pour the milk in a slow, steady stream while whisking.
Can I freeze the entire casserole?
You can freeze the assembled casserole without the crispy onions. Wrap tightly and freeze for up to 2 months. Thaw overnight in the fridge, then bake as directed, topping with onions before the final bake and adding 10 to 15 minutes to the initial bake time.
My beans were mushy. What went wrong?
They likely overcooked during blanching or the casserole baked too long. Blanch for 3 minutes maximum, shock immediately in ice water, and keep the total bake time under 35 minutes.

Fresh Green Bean Casserole Recipe
Ingredients
Method
- Bring a large pot of salted water to a boil. Add green beans and cook 3 to 4 minutes until bright and crisp-tender, then drain and shock in ice water.
- Melt butter in a large skillet over medium-high heat. Add mushrooms and shallot, and cook 6 to 8 minutes until golden. Add garlic and cook 1 minute.
- Stir flour into the mushroom mixture and cook 1 minute. Whisk in milk and broth gradually, bring to a simmer, and cook 3 to 4 minutes until thickened. Season with salt, pepper, and nutmeg.
- Fold the drained green beans into the sauce, then transfer to an 8×8-inch or similar baking dish.
- Bake at 375°F (190°C) for 20 minutes. Remove, scatter crispy fried onions over the top, and bake another 5 to 8 minutes until golden and bubbling. Let cool 5 minutes, then serve.
