It's Sunday, October 26th, and here in Austin, Texas, the air is finally crisp and the calendars are flipping toward the holidays. That means my mind is 100% focused on Thanksgiving. And while we all love the turkey, we know the truth: the side dishes are the real stars. For years, I avoided green bean casserole-I just couldn't get behind the metallic taste of the canned soup. This recipe, my friends, is the game-changer. This is the Ultimate Homemade Green Bean Casserole, made completely from scratch, with a rich, savory mushroom-cream sauce, fresh-blanched green beans, and a mountain of your own shatteringly-crispy fried shallots. It's the only one I'll ever make again.
Jump to:
My non-negotiable tip: Make the homemade crispy shallots at least a day-or even a week-in advance. They are the most time-consuming part, but they are 1000% better than anything you can buy in a can. Getting them done early turns this into a fast, easy assembly job on the big day.

A Thanksgiving Classic, Reimagined
This is not your grandma's 3-can-dump-and-bake (though we love that for its nostalgia!). This is a true, "from-scratch" culinary experience. We're building a "cream of mushroom" soup using fresh white button mushrooms, heavy cream, and a roux. We're blanching fresh green beans so they stay bright green and tender-crisp. And we're frying our own shallots for a topping that is unbelievably crunchy and flavorful. It's a bit of a project, but the results are absolutely worth it. This is the dish that converts all the green bean casserole haters.
Why You'll Love This Recipe
- 100% From Scratch: No canned soup! The flavour is built from fresh mushrooms, garlic, and cream for a savory, rich, and clean taste.
- Tender-Crisp Green Beans: By blanching fresh green beans (not using canned), you get a vibrant green colour and a perfect, snappy, tender-crisp texture-no mush!
- Shatteringly Crispy Shallots: The homemade fried shallots are the star of the show. They are so much better than the store-bought version.
- The Perfect Holiday Side: This is the ultimate "glow-up" for a Thanksgiving classic. It's a show-stopping, gourmet side dish that you can still make ahead.
Ingredients
Here's what you'll need for this from-scratch casserole. For the full list with precise measurements, see the recipe card at the end of the post!
For the Crispy Shallots
- Shallots: 1 pound of shallots, peeled and sliced very thin (an 8-inch mandoline is your best friend here).
- Oil: Canola oil or another high-heat neutral oil for frying.
- Salt: Kosher salt for seasoning.
For the Creamy Mushroom Sauce
- Mushrooms: 1 ½ pounds of white button mushrooms. (Cremini also work).
- Fats: Unsalted butter and the reserved shallot oil.
- Aromatics: 2 cloves of minced garlic.
- Sauce Base: Low-sodium chicken stock (or vegetable stock) and heavy cream.
- Flavour: Soy sauce and fresh lemon juice (for a secret umami/bright kick).
- Flour: All-purpose flour to thicken the sauce.
For the Green Beans
- Green Beans: 2 pounds of fresh green beans, ends trimmed, and cut into 2-inch pieces.
- Salt: Kosher salt for the blanching water.
How to Make The Ultimate Green Bean Casserole
This recipe has three main parts: the shallots, the sauce, and the beans.

Part 1: Make the Crispy Shallots (Make-Ahead!)
This is the most "project-like" part. In a wok or medium saucepan, I combine the thinly sliced shallots and the 2 cups of canola oil. I place this over high heat and cook, stirring frequently, until the shallots are completely soft (about 12 minutes).
Meanwhile, I line a rimmed baking sheet with 6 layers of paper towels.
I continue to cook the shallots, stirring constantly now, as they will go from pale to brown very quickly. Once they are a light, uniform golden brown (about 8 more minutes), I immediately strain them through a fine-mesh strainer set over a heat-proof bowl. (Save that amazing shallot oil!).
I transfer the fried shallots to the paper-towel-lined sheet. Here's the trick: I lift the top paper towel and roll the shallots onto the next one, blotting with the first. I repeat this 4 more times, transferring them to a fresh towel each time. This removes all the excess oil and makes them shatteringly crisp. I season them well with salt, let them cool completely, and store them in an airtight container.
Part 2: Make the Mushroom Sauce
First, I prep the mushrooms. The recipe uses a "smash" technique: I use the bottom of a heavy skillet to smash the mushrooms, then I roughly chop them into ⅛ to ¼-inch pieces. This gives the sauce a great, rustic texture.
In a 12-inch nonstick skillet, I heat 2 tablespoons of the reserved shallot oil and the butter over high heat. Once the foaming subsides, I add all the mushrooms and cook, stirring occasionally, until all their liquid has evaporated and they begin to sizzle and brown (6-10 minutes).
I reduce the heat to medium-high, add the minced garlic, and cook for 30 seconds until fragrant. I sprinkle in the flour and cook, stirring constantly, for 1-2 minutes to cook off the raw flour taste.
While whisking constantly, I slowly pour in the stock/cream/soy/lemon juice mixture. I bring it to a boil, then reduce it to a simmer. I let it cook for 5 minutes, until the sauce has thickened to the consistency of pancake batter. I season it to taste with salt and pepper.
Part 3: Blanch the Green Beans
This step is key for that bright green, non-mushy bean! I bring a large pot (1 gallon) of water and ¼ cup of kosher salt to a rolling boil. I also prepare a large bowl with an ice bath.
I add the green beans to the boiling water and cook for 5 minutes. They should be tender-crisp and still a vibrant green. I immediately drain them in a colander and plunge them into the ice water to stop the cooking process cold. I drain them very, very well.
Part 4: Assemble and Bake
I preheat the oven to 350°F (180°C).
In a large bowl, I combine the blanched, drained green beans, the creamy mushroom sauce, and 1 cup of the crispy fried shallots (this puts flavour inside the casserole, not just on top!).
I transfer this mixture to a 9- by 13-inch baking dish. I bake for 15-20 minutes, or until the sauce is hot and bubbling vigorously around the edges.
I remove it from the oven, top it with the remaining 1 cup of crispy fried shallots, and serve immediately.
Common Mistakes to Avoid
- Burning the Shallots: This is the #1 mistake. Shallots go from perfectly golden to burnt-and-bitter in 30 seconds. You must stir constantly and pull them the second they are golden. They will continue to darken as they cool.
- Soggy Beans: Do not skip the ice bath! This is a classic restaurant trick that "shocks" the vegetables, locking in that bright green colour and perfect tender-crisp texture.
- Lumpy Sauce: When making the sauce, you must cook the flour (the "roux") in the fat for 1-2 minutes before you add the liquid. Then, you must whisk constantly as you pour the liquid in.
Tips and Tricks for Success
- Mandoline for Shallots: A mandoline slicer is your best friend for the shallots. It's the only way to get them uniformly paper-thin, which is the secret to them all crisping up at the same time.
- The Mushroom Smash: Smashing the mushrooms (as the recipe directs) before chopping is a brilliant technique. It breaks down their structure, helping them release their water faster and creating a more "meaty" texture in the sauce.
- The Shallot Oil: Do not throw away that leftover shallot-infused oil from frying! It is liquid gold. I save it in a jar in the fridge and use it for weeks to make the best salad dressings or to fry eggs.
- Blot the Shallots! The repeated blotting on 6 layers of paper towels seems fussy, but it's the professional step that wicks away every last bit of oil, turning the shallots from "greasy" to "shatteringly crisp."
Variations
This from-scratch recipe is a masterpiece, but you can add your own touches!
- Cheesy Casserole: Fold 1 cup of shredded Gruyère or white cheddar cheese into the bean-and-sauce mixture before baking.
- Add Bacon: Top the finished casserole with ½ cup of crispy, crumbled bacon along with the final shallots.
- Make it Gluten-Free: This is an easy swap. Use a high-quality 1-to-1 gluten-free baking blend (one that contains xanthan gum) in place of the all-purpose flour for the sauce. Use gluten-free tamari instead of soy sauce.
- Vegetarian: Simply swap the chicken stock for a rich, high-quality mushroom or vegetable broth.
How to Serve
This is the classic Thanksgiving side dish, but it's also a fantastic addition to any holiday table or Sunday supper.
- Serve it hot, straight from the oven, so the shallots are at their crispiest.
- It's the perfect, decadent side dish for Roast Turkey, Copycat Honey Baked Ham, or a beef pot roast.

Make Ahead and Storage
This recipe is brilliant for holiday prep, as you can make all the components in advance.
- Make Ahead:
- Shallots: Fry, cool, and store the shallots in an airtight container at room temperature for up to 1 week.
- Mushroom Sauce: Make the sauce completely, let it cool, and store it in an airtight container in the fridge for up to 3 days.
- Green Beans: Blanch and shock the green beans 1-2 days ahead. Dry them thoroughly and store them in a zip-top bag in the fridge.
- Assembly: You can assemble the entire casserole (beans + sauce + half the shallots) in its baking dish 1 day ahead. Cover and refrigerate.
- Baking from Cold: If baking the pre-assembled, chilled casserole, you will need to increase the bake time. Bake at 350°F (180°C) for 35-45 minutes, or until it's hot and bubbly all the way through, then add the final topping of shallots.
- Storage: Store leftovers, covered, in the refrigerator for up to 4 days.
- Reheating: Reheat in a 350°F (175°C) oven for 15-20 minutes.
Recipe Notes / What I Learned
This recipe, with its specific, technical steps (smashing mushrooms, multiple paper towels for shallots, blanching), is a true "chef-style" recipe. It takes more effort than the canned version, but the result is not even comparable. The first time I made this, I finally understood what Green Bean Casserole should taste like: fresh, bright, creamy, savory, and (most importantly) crispy.
Nutrition Snapshot
Estimated Nutrition Per Serving (⅛th of casserole): ~390 calories · 7g protein · 22g carbs · 32g fat (This is an approximation and can vary based on the amount of oil absorbed by the shallots.)

The Ultimate Homemade Green Bean Casserole
Equipment
- Mandoline
- Wok or medium nonstick saucepan
- Rimmed baking sheet
- Paper towels
- Fine-mesh strainer
- Salad spinner
- 12-inch nonstick skillet
- Whisk
- Large pot for boiling
- Large bowl for ice bath
- Colander
- 9- by 13-inch baking dish
Ingredients
Group: Fried Shallots
- 1 pound shallots, peeled and sliced ⅛ inch thick on a mandoline (450 g)
- 2 cups canola oil (480 ml)
- Kosher salt
Group: Mushroom Sauce
- 1 ½ pounds white button mushrooms, rinsed and spun dry (675 g)
- 2 teaspoons soy sauce (10 ml)
- 2 teaspoons lemon juice (10 ml) from 1 whole lemon
- 2 cups low-sodium chicken stock (480 ml)
- 1 ½ cups heavy cream (360 ml)
- 2 tablespoons butter (30 g)
- 2 cloves garlic, finely minced or grated
- ¼ cup flour (30 g)
- Freshly ground black pepper
Group: Green Beans
- 2 pounds green beans, ends trimmed, cut into 2-inch segments (900 g)
Instructions
- Combine shallots and oil in a wok or medium nonstick saucepan. Place over high heat and cook, stirring frequently, until shallots are completely soft, about 12 minutes.
- Meanwhile, line a rimmed baking sheet with 6 layers of paper towels. Continue to cook shallots, stirring constantly, until shallots are light golden brown, about 8 minutes.
- Immediately strain through a fine-mesh strainer set in a heat-proof bowl. Set shallot oil aside. Transfer fried shallots to paper towels. Blot excess oil by lifting the top paper towel and rolling the shallots onto the next, repeating until one towel remains. Season well with salt.
- Allow shallots to cool completely, about 45 minutes. Once cooled, transfer to a sealed airtight container. (Shallots can be made up to 1 month in advance).
- Smash mushrooms under the bottom of a large skillet, then roughly chop into ⅛ to ¼ inch pieces. Set aside. Combine soy sauce, lemon juice, chicken stock, and heavy cream in a medium bowl or liquid measuring cup.
- Add 2 tablespoons (30ml) reserved shallot oil and butter to a 12-inch nonstick skillet. Heat over high heat until butter is melted. Add mushrooms and cook, stirring occasionally, until liquid is evaporated and mushrooms begin to sizzle, 6 to 10 minutes.
- Reduce heat to medium-high. Add garlic and cook, stirring constantly, until fragrant, about 30 seconds. Add flour and cook, stirring constantly, until light golden blond, 1 to 2 minutes.
- Whisking constantly, add the stock and cream mixture. Bring to a boil, reduce to a simmer, and cook until the mixture thickens, about 5 minutes. Season to taste with salt and pepper.
- Adjust oven rack to lower-middle position and preheat oven to 350°F (180°C). Bring 1 gallon (3.8L) water and ¼ cup (48g) kosher salt to a boil. Fill a large bowl with ice and water.
- Add green beans to the boiling water and cook until tender but still bright green, about 5 minutes. Drain through a colander and immediately transfer to the ice water to cool completely. Drain the green beans well.
- Combine the blanched green beans, the mushroom sauce, and 1 cup of the fried shallots. Transfer to a 9- by 13-inch baking dish.
- Bake until hot and bubbly, 15 to 20 minutes. Top with the remaining 1 cup of fried shallots and serve immediately.
Notes
Save the remaining shallot-infused oil in an airtight container for another use.
Nutrition
FAQs
Do I have to fry my own shallots? Can I use store-bought?
You can use store-bought canned fried onions, but the homemade shallots are 1000x better. They are crispier and have a much more delicate, sweet flavour.
Can I use frozen green beans?
Yes! This is a great shortcut. Use 2 lbs of frozen cut green beans. You can skip the blanching (Step 11). Just thaw them, pat them very dry, and mix them directly with the mushroom sauce and shallots in Step 12.
Can I use different mushrooms?
Absolutely! Cremini (baby bella) mushrooms will give the sauce an even deeper, earthier flavour. A mix of shiitake and button would also be delicious.




