Quick Recipe Version (TL;DR)
Quick Ingredients
- 1 large head cauliflower (2 lb/900 g), cut into bite-size florets (about 8 cups)
- 1 tsp unsalted butter or neutral oil, for greasing
- 4 tbsp (56 g) unsalted butter
- 4 tbsp (30 g) all-purpose flour
- 3 cups (720 ml) whole milk, warmed
- 1 tsp Dijon mustard (optional)
- 1 tsp kosher salt, plus more for blanching water
- 1/4 tsp freshly grated nutmeg
- 1/4 tsp white pepper (or black pepper)
- 1 1/2 cups (6 oz/170 g) shredded Gruyère, divided
- 1/2 cup (1 oz/28 g) finely grated Parmesan, divided
- 3/4 cup (35 g) panko breadcrumbs
- 1 tbsp (14 g) unsalted butter, melted
- 1 tsp fresh thyme leaves (optional)
- 2 tbsp finely chopped chives or parsley, for garnish
Do This
- 1. Heat oven to 400°F (200°C). Grease a 2½-qt broiler-safe baking dish. Bring a large pot of salted water to a boil.
- 2. Blanch cauliflower 4–5 minutes until crisp-tender. Drain well; spread on a towel to steam-dry.
- 3. Make béchamel: melt 4 tbsp butter; whisk in flour 2 minutes. Slowly whisk in warm milk; simmer 5–7 minutes until thick. Season with salt, nutmeg, pepper, and Dijon.
- 4. Off heat, stir 1 cup (4 oz) Gruyère into the sauce until smooth.
- 5. Toss cauliflower with sauce; transfer to dish. Top with remaining 1/2 cup Gruyère and 1/4 cup Parmesan.
- 6. Mix panko, 1 tbsp melted butter, thyme, and remaining 1/4 cup Parmesan; sprinkle over top.
- 7. Bake 20–25 minutes until bubbling and golden; broil 1–2 minutes to deeply brown. Rest 10 minutes; garnish with chives or parsley.
Why You’ll Love This Recipe
- Creamy, cozy comfort: a silky nutmeg-kissed béchamel hugs every cauliflower floret.
- Restaurant-worthy crust: a Gruyère cap with a crisp panko-Parmesan-thyme topping.
- Reliable technique: blanch for perfect texture, warm milk for lump-free sauce, broil for a golden finish.
- Flexible side or main: serve alongside roasted meats or with a leafy salad for a satisfying vegetarian dinner.
Grocery List
- Produce: 1 large head cauliflower; fresh thyme; fresh chives or flat-leaf parsley.
- Dairy: Unsalted butter; whole milk; Gruyère cheese; Parmesan cheese.
- Pantry: All-purpose flour; panko breadcrumbs; kosher salt; white or black pepper; Dijon mustard (optional); neutral oil (optional for greasing).
Full Ingredients
Cauliflower
- 1 large head cauliflower (2 lb/900 g), cut into bite-size florets (about 8 cups)
- Kosher salt, for the blanching water
Nutmeg Béchamel
- 4 tbsp (56 g) unsalted butter
- 4 tbsp (30 g) all-purpose flour
- 3 cups (720 ml) whole milk, warmed
- 1 tsp Dijon mustard (optional, for brightness)
- 1 tsp kosher salt
- 1/4 tsp freshly grated nutmeg
- 1/4 tsp white pepper (or black pepper)
Cheeses & Crunchy Top
- 1 1/2 cups (6 oz/170 g) shredded Gruyère, divided
- 1/2 cup (1 oz/28 g) finely grated Parmesan, divided
- 3/4 cup (35 g) panko breadcrumbs
- 1 tbsp (14 g) unsalted butter, melted
- 1 tsp fresh thyme leaves (optional)
To Finish
- 2 tbsp finely chopped chives or flat-leaf parsley, for garnish
For the Dish
- 1 tsp unsalted butter or neutral oil, for greasing the baking dish

Step-by-Step Instructions
Step 1: Heat the oven and prepare your pan
Preheat the oven to 400°F (200°C). Lightly grease a 2½-quart broiler-safe baking dish (about 9×13 inches) with 1 teaspoon butter or neutral oil. Set a large pot of well-salted water to boil (it should taste like the sea).
Step 2: Blanch and dry the cauliflower
Add the cauliflower florets to the boiling water and cook for 4–5 minutes, until crisp-tender. Drain thoroughly, then spread the florets on a clean towel or baking sheet to steam-dry for a few minutes. Pat gently to remove excess moisture—dry florets mean a creamy, non-watery gratin.
Step 3: Warm the milk
In a small saucepan or microwave-safe pitcher, warm the milk until steaming but not boiling. Warm milk blends more smoothly into the roux, preventing lumps and speeding up thickening.
Step 4: Make the nutmeg béchamel
In a medium saucepan over medium heat, melt 4 tablespoons butter. Whisk in the flour and cook, whisking constantly, for 2 minutes to form a pale roux. Slowly add the warm milk, whisking vigorously to avoid lumps. Bring to a gentle simmer and cook 5–7 minutes, whisking often, until the sauce coats the back of a spoon. Whisk in the kosher salt, nutmeg, white pepper, and Dijon (if using).
Step 5: Add Gruyère to the sauce
Remove the béchamel from the heat and stir in 1 cup (4 oz) of the shredded Gruyère until smooth and glossy. Taste and adjust seasoning if needed.
Step 6: Assemble the gratin
Combine the dry cauliflower with the cheese sauce, tossing gently to coat. Transfer to the prepared baking dish. Sprinkle over the remaining 1/2 cup (2 oz) Gruyère and 1/4 cup Parmesan. In a small bowl, mix the panko, melted 1 tablespoon butter, thyme, and remaining 1/4 cup Parmesan. Scatter the crumbs evenly over the top.
Step 7: Bake, brown, and rest
Bake for 20–25 minutes, until the gratin is bubbling around the edges and the top is golden. For a deeper bronze crust, switch to broil for 1–2 minutes, watching closely. Let rest 10 minutes to set the sauce. Garnish with chopped chives or parsley and serve warm.
Pro Tips
- Dry matters: Spread the blanched cauliflower to steam-dry so the sauce stays velvety, not watery.
- Warm your milk: Adding warm milk to the roux prevents lumps and speeds thickening.
- Grate your own cheese: Freshly grated Gruyère melts cleaner and creamier than pre-shredded.
- Mind the nutmeg: Freshly grate for the most aromatic, classic béchamel flavor—just a pinch goes a long way.
- Broil with care: A minute or two is plenty; stay at the oven to avoid scorching.
Variations
- Classic French swap: Use Comté or Emmental in place of Gruyère for a similarly nutty profile.
- Leek and cauliflower gratin: Sauté 1 thinly sliced leek in 1 tbsp butter until soft; fold into the sauce with the cauliflower.
- Gluten-free: Use a 1:1 gluten-free all-purpose flour for the roux and gluten-free breadcrumbs for the topping.
Storage & Make-Ahead
Refrigerate leftovers covered for up to 4 days; reheat at 350°F (175°C) for 15–20 minutes. Make-ahead: Blanch the cauliflower and make the béchamel up to 2 days in advance (store separately, covered, in the fridge). Or assemble the unbaked gratin up to 24 hours ahead; cover and refrigerate, then bake directly from cold, adding 10–15 minutes. To freeze, assemble but do not bake; wrap tightly and freeze up to 2 months. Bake from frozen at 375°F (190°C) for 50–60 minutes, then broil to brown if needed.
Nutrition (per serving)
Approx. 380 calories; 24 g fat (15 g saturated); 25 g carbohydrates; 2 g fiber; 6 g sugars; 15 g protein; ~900 mg sodium. Values are estimates and will vary with brands and seasoning.


Leave a Reply