Quick Recipe Version (TL;DR)
Quick Ingredients
- 4 tbsp unsalted butter
- 1 medium yellow onion, finely chopped (about 1 cup)
- 2 cloves garlic, minced
- 1/4 cup all-purpose flour
- 2 cups low-sodium chicken or vegetable broth
- 2 cups whole milk
- 1 cup heavy cream
- 3 cups small broccoli florets + 1 cup finely diced stems
- 1 cup julienned carrot (matchsticks)
- 1 bay leaf
- 2 cups freshly shredded sharp cheddar (8 oz), plus extra for garnish
- 1 tsp kosher salt, 1/2 tsp white pepper
- Pinch ground nutmeg (optional), 1 tsp Dijon mustard (optional)
- Optional bread bowls: 4 small sourdough boules, 2 tbsp melted butter
Do This
- 1. Melt butter; sauté onion 3–4 minutes. Add garlic 30 seconds.
- 2. Stir in flour; cook 2 minutes, stirring constantly.
- 3. Whisk in broth, then milk and cream; add bay leaf and carrots. Simmer 10 minutes.
- 4. Add broccoli; simmer 8–10 minutes until tender.
- 5. Off heat, remove bay leaf; stir in Dijon (optional) and cheddar by the handful until smooth. Season with salt, white pepper, and a pinch of nutmeg.
- 6. For bread bowls: Heat oven to 400°F. Hollow boules, brush with butter, and toast 8–10 minutes. Ladle in soup; garnish with cheddar and chives.
Why You’ll Love This Recipe
- Velvety, restaurant-style texture with a classic cheddar bite.
- Loads of broccoli and sweet carrot for color and crunch-tender contrast.
- Foolproof technique that avoids grainy cheese or curdled cream.
- Optional toasted sourdough bread bowl turns it into a cozy, complete meal.
Grocery List
- Produce: 1 medium yellow onion, 2 cloves garlic, 1 large head broccoli (about 12 oz florets plus stems), 2 medium carrots, fresh chives or parsley (garnish)
- Dairy: Unsalted butter, whole milk, heavy cream, sharp cheddar cheese (8 oz block)
- Pantry: Low-sodium chicken or vegetable broth, all-purpose flour, bay leaf, kosher salt, white pepper, ground nutmeg, Dijon mustard (optional)
Full Ingredients
For the Soup
- 4 tbsp unsalted butter
- 1 medium yellow onion, finely chopped (about 1 cup)
- 2 cloves garlic, minced
- 1/4 cup all-purpose flour
- 2 cups low-sodium chicken broth (or vegetable broth for vegetarian)
- 2 cups whole milk
- 1 cup heavy cream
- 3 cups small broccoli florets (about 10–12 oz), plus 1 cup peeled stems finely diced
- 1 cup julienned carrot (about 2 medium carrots)
- 1 bay leaf
- 2 cups freshly shredded sharp cheddar cheese (8 oz), plus 1/2 cup for garnish
- 1 tsp kosher salt, plus more to taste
- 1/2 tsp freshly ground white pepper (or black pepper)
- 1/8 tsp ground nutmeg (optional but classic)
- 1 tsp Dijon mustard (optional, enhances cheesy depth)
Optional Bread Bowls & Garnish
- 4 small round sourdough boules (5–6 inches wide)
- 2 tbsp melted butter or olive oil
- Chopped chives or parsley, extra shredded cheddar, and a few grinds of pepper for serving

Step-by-Step Instructions
Step 1: Prep and shred
Finely chop the onion and mince the garlic. Cut broccoli into small bite-size florets and finely dice the peeled stems for tenderness. Julienne the carrots into matchsticks. Shred the cheddar on the large holes of a box grater (avoid pre-shredded cheese, which can clump). Measure out the milk, cream, and broth.
Step 2: Sauté the aromatics
In a large heavy pot or Dutch oven, melt the butter over medium heat. Add the chopped onion and cook, stirring, until translucent and softened, 3–4 minutes. Stir in the garlic and cook 30 seconds until fragrant, not browned.
Step 3: Make the roux
Sprinkle the flour evenly over the onions and cook, stirring constantly, for 2 minutes. The mixture will look pasty—this cooks off raw flour taste and builds body for a velvety soup.
Step 4: Build the creamy base
While whisking, slowly stream in the broth until smooth. Whisk in the milk and cream. Add the bay leaf and the julienned carrots. Bring just to a simmer over medium heat, then reduce heat to medium-low. Simmer gently, uncovered, for 10 minutes, stirring occasionally, until slightly thickened. Do not boil.
Step 5: Add broccoli and simmer to tender
Stir in the broccoli florets and diced stems. Simmer gently until the broccoli is tender but still bright green, 8–10 minutes. If the soup gets too thick, whisk in a splash of warm broth or milk to loosen.
Step 6: Finish with cheese (off the heat)
Remove the pot from the heat and discard the bay leaf. Stir in the Dijon (if using), salt, white pepper, and nutmeg. Add the shredded cheddar by small handfuls, stirring between each addition until smooth and fully melted. Taste and adjust seasoning with more salt or pepper. Keep the soup warm over the lowest heat, avoiding a boil.
Step 7: Toast bread bowls (optional) and serve
Heat the oven to 400°F. Using a serrated knife, cut a 4-inch circle from the top of each boule and hollow out most of the interior, leaving a 1/2-inch shell. Brush the inside with melted butter or oil. Place on a baking sheet and toast 8–10 minutes until lightly crisp; for extra crunch, broil 30–60 seconds. Ladle soup into bowls or bread bowls, garnish with extra cheddar and chives, and serve immediately.
Pro Tips
- Shred your own cheddar: anti-caking agents on pre-shredded cheese can make the soup grainy.
- Heat control is everything: once dairy is in the pot, keep the soup below a boil. Add cheese off the heat for a silky finish.
- Cut broccoli small: bite-size florets and finely diced stems cook evenly and give that classic spoonable texture.
- Season in layers: a pinch of nutmeg and a touch of Dijon deepen the cheddar flavor without standing out.
- Adjust thickness: whisk in warm milk or broth, a few tablespoons at a time, if the soup gets too thick as it sits.
Variations
- Vegetarian: use vegetable broth.
- Gluten-free: replace flour with 2 tbsp cornstarch whisked into 1/4 cup cold milk; add after simmering the base and before the broccoli. Simmer 1–2 minutes to thicken, then proceed.
- Lighter: swap half the heavy cream for additional whole milk and reduce cheddar to 6 oz; the soup will be slightly less rich but still creamy.
Storage & Make-Ahead
Refrigerate cooled soup in an airtight container for up to 4 days. Reheat gently over low heat, stirring often; do not boil. If it thickens in the fridge, whisk in a splash of milk while warming. Freezing cheese-and-cream soups can cause separation, so it’s best not to freeze after adding dairy. For make-ahead, cook through Step 5 (without cheese), cool, and refrigerate up to 2 days. Reheat gently, then finish with cheese just before serving.
Nutrition (per serving)
Approximate for soup only (no bread bowl): 430 calories; 30 g fat; 20 g carbohydrates; 17 g protein; 1.5 g fiber; 820 mg sodium. Values will vary based on brands and exact ingredients.

