This broccoli casserole from scratch is a rich, cheesy, and comforting side dish made with fresh broccoli, a creamy homemade sauce, and a crunchy breadcrumb topping. It’s a holiday favorite that works perfectly for Thanksgiving, Christmas, or any special occasion. Unlike traditional versions made with canned soup, this casserole is made entirely from scratch for the best flavor and texture. Plus, it’s an easy make-ahead dish, saving you time on busy cooking days!

Why You’ll Love This Recipe
✅ No Canned Soup – Made with fresh ingredients for the best flavor.
✅ Creamy & Cheesy – A rich, homemade sauce coats every bite.
✅ Crunchy Topping – Buttery breadcrumbs add the perfect crispy finish.
✅ Great for Holidays – A must-have on any Thanksgiving or Christmas table.
✅ Make-Ahead Friendly – Assemble it in advance for stress-free cooking.
Ingredients for Broccoli Casserole
Main Ingredients
- 2 ½ pounds broccoli florets, cut into bite-sized pieces (about 10 cups)
- 6 tablespoons butter, divided
- 1 cup finely chopped cremini mushrooms
- 1 cup finely chopped yellow onion
- ¼ cup flour
- 1 cup milk (whole or 2% preferred)
- ½ cup half and half
- ½ teaspoon salt
- ¼ teaspoon freshly ground black pepper
- ½ cup plain Greek yogurt (or substitute with sour cream or mayonnaise)
- 1 egg, lightly beaten
- 1 ½ cups grated cheddar cheese, divided
- 1 ¼ cups whole-wheat breadcrumbs, divided (or substitute with crushed Ritz crackers for a crispier topping)
How to Make Broccoli Casserole from Scratch
Step 1: Prep the Oven & Baking Dish
- Preheat oven to 350°F (175°C).
- Lightly spray a 3-quart or 9×13-inch baking dish with cooking spray.
Step 2: Cook the Broccoli
- Bring a large pot of water to a boil.
- Add broccoli florets and cook for 4 minutes.
- Drain and rinse with cold water to stop the cooking process.
- Transfer the broccoli to a large mixing bowl.
Step 3: Sauté the Vegetables
- In a medium saucepan, melt 1 tablespoon butter over medium heat.
- Add chopped mushrooms and onions, cooking for 4 minutes until softened.
- Transfer the cooked veggies to the bowl with the broccoli.
Step 4: Make the Creamy Sauce
- In the same saucepan, melt 4 tablespoons butter over medium heat.
- Whisk in ¼ cup flour, stirring continuously for 1 minute to remove the raw taste.
- Gradually whisk in milk and half & half, stirring until smooth.
- Bring to a low simmer, whisking constantly, until thickened.
- Remove from heat and whisk in salt, black pepper, and Greek yogurt.
Step 5: Assemble the Casserole
- Pour the creamy sauce over the broccoli, mushrooms, and onions in the mixing bowl.
- Add 1 cup cheddar cheese, ½ cup breadcrumbs, and beaten egg, stirring to combine.
- Transfer the mixture to the prepared baking dish.
Step 6: Make the Topping
- Melt the remaining 1 tablespoon butter and mix it with ¾ cup breadcrumbs.
- Stir in the remaining ½ cup cheddar cheese.
- Sprinkle the topping evenly over the casserole.
Step 7: Bake & Serve
- Cover with foil and bake for 30 minutes.
- Uncover and bake for an additional 15-20 minutes, until golden brown and heated through.
- Let the casserole rest for 10 minutes before serving.

Make-Ahead & Storage Instructions
🥡 Make Ahead (Unbaked): Assemble the casserole up to 1 day in advance, cover, and refrigerate. Let sit at room temperature for 30 minutes before baking. Add 15-20 extra minutes to the bake time if cold.
❄️ Make Ahead (Baked & Reheated): Bake the casserole the day before, refrigerate, and reheat at 350°F for 40-45 minutes (covered), then uncover for the last 10 minutes.
🔥 To Freeze: Assemble the casserole, cover tightly, and freeze for up to 3 months. Bake directly from frozen, adding extra cook time.
🍽 Leftovers: Store in an airtight container in the fridge for up to 4 days.
Tips for the Best Broccoli Casserole
🥦 Use Fresh Broccoli – Frozen broccoli will make the casserole watery.
🧄 Enhance the Flavor – Add minced garlic or red pepper flakes for extra depth.
🧀 Try Different Cheeses – Mix in Gruyère, Monterey Jack, or Parmesan for variety.
🍞 Topping Options – Use crushed crackers or panko breadcrumbs for extra crispiness.
🥣 For a Thicker Sauce – Reduce the milk slightly for a richer, denser texture.
FAQs About Broccoli Casserole
Q: Can I use frozen broccoli?
A: Fresh is best, but you can use frozen broccoli—just thaw and drain well before using.
Q: Can I make this casserole gluten-free?
A: Yes! Swap flour for cornstarch in the sauce and use gluten-free breadcrumbs.
Q: What’s a good substitute for Greek yogurt?
A: You can use sour cream, mayonnaise, or cream cheese.
Q: Can I add protein to this casserole?
A: Absolutely! Try adding cooked chicken, ham, or crispy bacon for extra heartiness.
Final Thoughts
This homemade broccoli casserole is the perfect creamy, cheesy, and crunchy side dish for any occasion. Whether you’re serving it for a holiday feast, potluck, or weeknight dinner, this from-scratch version delivers incredible flavor without canned soup. Try it today and make this family favorite a tradition on your table!
Short version

Broccoli Casserole From Scratch
Ingredients
- 2 ½ pounds broccoli florets cut into bite-size pieces (about 10 cups)
- 6 tablespoons butter divided
- 1 cup finely chopped cremini mushrooms
- 1 cup finely chopped yellow onion
- ¼ cup flour
- 1 cup milk whole or 2% preferred
- ½ cup half and half
- ½ teaspoon salt
- ¼ teaspoon freshly ground black pepper
- ½ cup plain Greek yogurt full fat or 2%
- 1 egg lightly beaten
- 1 ½ cups grated cheddar cheese divided
- 1 ¼ cups whole-wheat breadcrumbs (homemade or store-bought, divided)
Instructions
- Preheat the oven to 350°F. Lightly spray a 3-quart baking dish (or a 9×13-inch baking dish) with cooking spray.
- Bring a large pot of water to a boil. Add the broccoli and boil for 4 minutes. Transfer to a colander, rinse with cold water, and drain well. Place the broccoli in a large bowl.
- Meanwhile, melt 1 tablespoon butter in a medium saucepan over medium heat. Add the mushrooms and onion and cook, stirring occasionally, for about 4 minutes, until softened. Transfer to the bowl with the broccoli.
- In the same saucepan, melt 4 tablespoons butter over medium heat. Whisk in the flour until smooth and cook, whisking constantly, for about 1 minute. Gradually whisk in the milk and half and half. Bring to a low simmer, whisking continuously, until the sauce thickens. Remove from heat and whisk in the salt, pepper, and Greek yogurt.
- Pour the sauce over the broccoli, mushrooms, and onion in the bowl. Add the egg, 1 cup cheddar cheese, and ½ cup breadcrumbs. Stir to combine, then transfer to the prepared baking dish.
- Melt the remaining 1 tablespoon butter and stir it into the remaining ¾ cup breadcrumbs. Mix in the remaining ½ cup cheddar cheese. Sprinkle the breadcrumb topping evenly over the casserole.
- Cover with foil and bake for 30 minutes. Uncover and bake for 15-20 minutes more, until the topping is lightly browned and the casserole is hot throughout. Let stand for 10 minutes before serving.
Notes
In a food processor, pulse 4 slices of whole-wheat bread until fine crumbs form.
Spread the crumbs on a rimmed baking sheet and bake until dry and lightly golden, about 15 minutes (stir after 10 minutes for even browning).
Store any unused breadcrumbs in the freezer for future use. Topping Alternative: Instead of breadcrumbs, you can use crushed Ritz crackers for a crispier topping. Make-Ahead Options: Make Ahead (Unbaked): Assemble the casserole one day ahead, cover, and refrigerate. Before baking, let it sit at room temperature for 30 minutes to take the chill off. Then add 15-20 extra minutes to the bake time since it’s cold from the fridge. Make Ahead (Baked & Reheated): My family typically bakes this casserole the day before Thanksgiving and reheats it before serving. To Reheat: Bake at 350°F, covered with foil, for 40-45 minutes, then uncover for 10 minutes to crisp the topping. Oven Space Tip: My family bakes this broccoli casserole (along with other side dishes) after the turkey comes out of the oven. The turkey rests for 45 minutes, which is the perfect time for the side dishes to bake. Doubling the Recipe:If doubling the recipe, bake in two separate baking dishes. A double batch will not fit in a single 9×13-inch dish.
