Prep the Oven & Dish: Preheat oven to 400°F (200°C). Lightly grease a 9×13-inch baking dish and set aside.
Parboil the Brussels Sprouts: Bring a large pot of salted water to a boil. Add Brussels sprouts and cook 4–5 minutes until just fork-tender. Drain well and set aside.
Cook the Bacon: In a large skillet over medium heat, cook the chopped bacon until crispy. Remove with a slotted spoon and set aside, leaving 2 tablespoons of bacon fat in the pan (discard extra).
Sauté the Aromatics: Add the butter to the skillet with the bacon fat. Once melted, stir in the diced onion and cook 3–4 minutes until softened.
Add the garlic and crushed red pepper flakes; cook 30 seconds until fragrant.
Make the Roux: Sprinkle flour over the onion mixture. Stir constantly for 1 minute to cook out the raw flour taste.
Build the Creamy Sauce: Slowly whisk in the chicken broth, scraping up any browned bits. Cook 1–2 minutes until slightly thickened.
Pour in the heavy cream and whisk 2–3 minutes until smooth, creamy, and thick enough to coat a spoon. Season with salt and pepper.
Add the parboiled Brussels sprouts and half of the cooked bacon, gently folding until evenly coated.
Assemble the Casserole: Transfer the mixture to the prepared baking dish.
Sprinkle Gruyère and Parmesan evenly over the top.
Bake uncovered for 20 minutes, until bubbly and golden around the edges.
Add Crunch: Remove from oven and sprinkle French’s crispy fried onions and the remaining cooked bacon over the top.
Return to the oven for 5 minutes, just until crisp and lightly toasted.
Let the casserole rest for 5 minutes. Garnish with fresh parsley and serve warm.