Prep the oven and pan: Heat the oven to 375°F (190°C). Grease a 9x13-inch baking dish with cooking spray or a little butter.
Cook the broccoli: Bring a pot of salted water to a boil.
Blanch the broccoli florets for 1–2 minutes until bright green and just tender. Drain and rinse under cold water to stop cooking. Pat dry and spread evenly in the baking dish.
Cook the chicken: Season chicken with salt, pepper, and a pinch of paprika.
Heat 1 tablespoon olive oil and 1 tablespoon butter in a large skillet over medium-high heat. Sear chicken 3–4 minutes per side until cooked through (165°F/74°C). Rest 5 minutes, then cut into bite-size pieces.
Scatter over the broccoli.
Sauté aromatics: In the same skillet, reduce heat to medium. Add 2 tablespoons butter and the chopped onion. Cook until soft and translucent, about 4 minutes.
Stir in garlic and cook 30 seconds.
Make the sauce base: Sprinkle in the flour. Stir for 1 minute to form a roux. Slowly whisk in the chicken stock, then the milk.
Simmer 3–4 minutes, whisking, until slightly thickened and smooth.
Finish the sauce: Off the heat, whisk in sour cream, Dijon, lemon juice, onion powder, remaining paprika, and 1 cup of the shredded cheese. Season with salt and pepper. Taste and adjust—add a splash more stock if too thick.
Assemble: Pour the sauce evenly over the chicken and broccoli.
Gently nudge with a spatula so everything is coated. Sprinkle the remaining 1/2 cup shredded cheese on top.
Make the topping: Melt the last tablespoon of butter. In a bowl, mix panko, Parmesan, melted butter, a pinch of salt, and chopped parsley.
Sprinkle over the casserole in an even layer.
Bake: Bake uncovered for 18–22 minutes until bubbling around the edges and the top is golden. If needed, broil for 1–2 minutes at the end to crisp the topping—watch closely.
Rest and serve: Let it rest 5–10 minutes so the sauce sets slightly. Serve warm with rice, buttered noodles, or crusty bread.