Soups & Stews
This best broccoli cheddar soup recipe with milk delivers the ultra-creamy, velvety texture you crave—every spoonful is rich, comforting, and perfectly balanced. The secret lies in blending the soup just right and using whole milk for that signature smoothness without heaviness.
I’ve perfected this recipe over years of testing, ensuring it’s vegetarian-friendly, foolproof, and packed with cheesy goodness that’ll have everyone asking for seconds.
The foundation starts with sautéing onions and garlic until fragrant, then building flavor with a roux made from butter and flour. Fresh broccoli and chicken broth create the base, while sharp cheddar cheese melts into a luscious, velvety sauce.
The key? Simmering until thickened naturally before blending for that restaurant-quality creaminess. This isn’t your average soup—it’s a hearty, satisfying dish that feels like a warm hug in a bowl.
What sets this recipe apart is the ultra-creamy texture achieved through proper thickening techniques, not just dumping in extra cheese. The milk adds depth without making the soup greasy, while a touch of mustard and a pinch of nutmeg elevate the flavor profile.
Whether you’re serving it as a cozy appetizer or a main dish with crusty bread, this soup is a crowd-pleaser that’s easy to customize—add roasted garlic, bacon, or a sprinkle of paprika for extra flair.
Ready in about 45 minutes, this recipe is perfect for meal prep or a last-minute dinner. The best part? Leftovers taste even better the next day as the flavors meld.
Garnish with crispy croutons, extra cheese, or a swirl of sour cream for the final touch. Let’s make the creamiest broccoli cheddar soup you’ve ever tasted.
Ingredients for best broccoli cheddar soup recipe with milk
These 14 ingredients transform into the creamiest broccoli cheddar soup you'll ever taste.
| Ingredient | Amount | Notes |
|---|---|---|
| Yellow Onion 🧅 | 1 whole | Diced into small pieces |
| Garlic Cloves 🧄 | 4 cloves | Minced for aromatic base |
| Unsalted Butter 🧈 | 4 tbsp | For rich roux foundation |
| All-Purpose Flour 🌾 | ½ cup | For smooth thickening |
| Fresh Broccoli 🥦 | 2 cups | Chopped into florets (fresh or frozen) |
| Vegetable Broth 💧 | 4 cups | Low-sodium preferred |
| Whole Milk 🥛 | 1 cup | For signature creaminess |
| Sharp Cheddar Cheese 🧀 | 2 cups | Shredded, aged variety |
| Dijon Mustard 🍯 | 1 tsp | For subtle tang |
| Ground Nutmeg 🌿 | ¼ tsp | Freshly ground preferred |
| Salt 🧂 | ½ tsp | Adjust to taste |
| Black Pepper 🌶️ | ¼ tsp | Freshly cracked |
| Heavy Cream 🥛 | ¼ cup | Optional for extra richness |
| Crusty Bread 🍞 | ½ cup | For crouton garnish |
The cheddar makes this soup sing—sharp, aged varieties like Cabot or Tillamook melt beautifully. Whole milk is non-negotiable for that velvety texture without heaviness. Grab a wedge from the deli counter and grate it yourself (pre-shredded gets clumpy). The butter matters too—unsalted gives you control over seasoning. For the broth, Low Sodium Vegetable Broth from the store works fine, but homemade is worth it if you've got time. Fresh broccoli is ideal, but frozen florets in a pinch give great results too—just thaw first.
No sharp cheddar? Pepper jack or Monterey Jack work in a pinch, though the flavor profile changes. Short on milk? Half-and-half or coconut milk add richness, but whole milk is the secret weapon. The nutmeg is subtle but essential—pre-ground works, but freshly grated from a nutmeg reamer takes it to the next level. For extra depth, swap half the vegetable broth for white wine or cream of mushroom soup. Want to make it vegan? Swap the butter for olive oil and the heavy cream for coconut cream.
This soup tastes even better the next day as flavors meld—3-4 days in the fridge is perfect. Freeze portions for up to 3 months by pouring into airtight containers. For meal prep, make a double batch and freeze half. Garnish with crispy croutons (toast cubed bread with olive oil until golden) or a swirl of sour cream right before serving. The cheese sauce thickens as it cools, so add a splash of milk if it seems too stiff when reheating.
Why You'll Love This Recipe
- No-Fuss Roux Magic: This soup starts with a simple butter-flour roux—just 5 minutes of stirring while you chop the onion. No fancy techniques, no stress. I swear, that golden base makes everything else taste like it was simmered for hours.
- Creamy Without Cream: The milk and cheddar blend into this velvety texture that’s richer than store-bought but still light enough to eat a bowl at lunch. Honestly, the first time I tasted it, I thought I’d added heavy cream—and then remembered I hadn’t.
- Lunchbox Hero: Pack it cold or reheat it—this soup holds up perfectly for school lunches or office meals. My kid’s teacher actually asked for the recipe after tasting his leftovers. (Yes, even on a Tuesday.)
- Budget Stretch: Fresh broccoli, a single onion, and a block of cheddar stretch into four servings without breaking the bank. I’ll be real: I’ve made this twice in one week because it’s that reliable—and the leftovers taste just as good reheated.
Step-by-step instructions for ultra-creamy broccoli cheddar soup
Here's how to make the richest, velvety broccoli cheddar soup you've ever tasted—every spoonful packed with cheesy goodness and silky texture.
Build the Flavorful Roux Base
Melt the 4 tablespoons unsalted butter in a large pot over medium heat. Once fully melted and foaming subsides, add the 1 whole yellow onion and 4 cloves minced garlic. Cook for 5-6 minutes until the onions soften and turn translucent, and the garlic becomes fragrant—this is your aromatic foundation.
Here's the thing—don't rush this step. You'll smell when it's ready: sweet onions and nutty garlic. Then whisk in the ½ cup all-purpose flour and cook for another 2 minutes until lightly golden. This roux will thicken beautifully and create that ultra-smooth texture we're after.
Slowly Incorporate Liquids for Smooth Texture
Gradually pour in the 4 cups vegetable broth while whisking constantly to prevent lumps. Bring to a gentle simmer and cook for 5 minutes until slightly thickened. This gradual addition creates a velvety base without any flour taste.
Now stir in the 1 cup whole milk and 1 teaspoon Dijon mustard. Simmer for another 3 minutes—this is where the magic happens. The milk adds creaminess while the mustard gives that subtle tang that balances the richness. You'll notice the soup starting to thicken slightly as it cooks.
Add Broccoli and Seasonings
Toss in the 2 cups chopped broccoli florets and simmer for 8-10 minutes until tender but still vibrant green. The broccoli should be fork-tender with just a slight bite—this ensures perfect texture without mushiness.
Season with ½ teaspoon salt, ¼ teaspoon black pepper, and ¼ teaspoon ground nutmeg. Here's where it gets delicious: stir in 2 cups shredded sharp cheddar cheese until completely melted and smooth. The cheese should blend seamlessly for that signature cheddar flavor in every bite.
Finish with Creamy Richness
Reduce heat to low and stir in the ¼ cup heavy cream (if using) and the 1 teaspoon Dijon mustard. Let it simmer for 2-3 minutes just to meld all the flavors together. Taste and adjust seasoning—this is your moment to perfect it.
For that restaurant-quality finish, blend about half the soup with an immersion blender until smooth (leave some texture if you prefer chunks). The contrast of creamy and slightly chunky makes it irresistible. Return to the pot and stir in the remaining unblended portion.
Garnish and Serve Warm
Ladle the soup into bowls and top each serving with ½ cup toasted crusty bread croutons. The contrast of warm, cheesy soup with crispy croutons is pure comfort food magic. Serve immediately while still steaming hot—this soup tastes best fresh from the pot.
Pro tip: If you want extra richness, stir in a pat of butter or a splash of milk when serving. The secret to the best broccoli cheddar soup? Patience in building flavors and that perfect blend of creamy, cheesy goodness in every spoonful.
Pro Tips For Making Best Broccoli Cheddar Soup Recipe With Milk
- Cook Onions Low: I used to rush this step and end up with bitter, charred onions that ruined the whole soup. Simmer them in the butter at the lowest heat setting—just until they’re translucent and soft, not golden. That way, the flavor melts into the milk instead of turning acrid.
- Blanch Broccoli First: Skip the raw florets straight into the pot—blanch them in boiling water for 1 minute before adding. This softens them evenly and keeps them from turning mushy later. Drain well and shock in ice water to stop cooking; they’ll hold their shape and texture.
- Whisk Flour Like Mad: When you toss in the flour, don’t just sprinkle and stir. Whisk it aggressively into the butter for 30 seconds until it’s a smooth paste—no lumps, no grit. This prevents that dreaded floury texture in the soup and ensures a silky roux.
- Add Cheese Gradually: Dumping all the cheddar at once makes the soup separate and turn greasy. Instead, stir in a third of the cheese first, let it melt completely, then add the rest in batches. This keeps the soup creamy and prevents clumping—no one wants a lumpy bowl.
Serving suggestions for this dish
Bread Pairings
Crusty sourdough or baguette slices are my go-to for dipping—toss them in olive oil and toast until golden for the perfect textural contrast. For extra indulgence, try garlic bread with a spread of herb butter on the side. The crispy exterior and soft interior create the ultimate soup companion. 🥖
Cheesy Toppings
Finish each bowl with a sprinkle of extra sharp cheddar or Parmesan cheese for an umami boost. I love adding crumbled bacon bits (if you're not vegetarian) or toasted breadcrumbs for crunch. For a smoky twist, try smoked gouda or a dash of hot sauce on top.
Dipper Variations
Swap out croutons for pretzel crisps or pita chips—they add a salty crunch that cuts through the creaminess beautifully. For a lighter option, serve with warm naan or flatbread drizzled with garlic yogurt. The key is contrasting textures to enhance every spoonful.
Beverage Pairings
A crisp white wine like Sauvignon Blanc or a light lager beer balances the richness perfectly. For non-alcoholic options, sparkling apple cider or iced herbal tea with lemon cleanses the palate. Avoid heavy reds—they’ll overpower the delicate cheesy notes.
Make-Ahead Garnishes
Prep toppings ahead of time for convenience: toast croutons in advance and store in an airtight container, or make a batch of cheese crisps by baking shredded cheddar until crispy. Keep them in the freezer for up to 2 weeks—just reheat before serving for that fresh-from-the-oven crunch. ✨
Nutrition facts
Frequently asked questions
Why does this recipe use whole milk instead of heavy cream?
Whole milk creates that signature velvety texture without making the soup overly rich or greasy. The fat content in whole milk adds creaminess while keeping the soup light enough to enjoy as a main dish. Heavy cream can make the soup too heavy, while skim milk won't give that luxurious mouthfeel.
Can I make this soup without blending for a chunkier texture?
Skip the blending step for a heartier soup with visible broccoli pieces. Just simmer the soup longer (about 15-20 minutes after adding broccoli) to soften the florets. For extra thickness, stir in a cornstarch slurry if needed. The roux will still create a smooth base.
What's the secret to preventing a floury taste in the soup?
Cook the roux just until it's lightly golden (2 minutes) and whisk constantly when adding liquids to prevent lumps. The key is simmering the soup for at least 10 minutes after adding broth—this allows the raw flour taste to fully cook off while thickening naturally.
How can I make this vegetarian soup even more filling?
Add ½ cup cooked quinoa or white beans to the soup for extra protein and heartiness. You can also stir in ½ cup cooked diced potatoes during the simmering phase. These additions bulk up the soup while keeping it vegetarian-friendly and satisfying.
What's the best way to reheat leftovers without breaking the texture?
Reheat gently on the stove over low heat with a splash of milk or broth to restore creaminess. If using the microwave, cover with a damp paper towel and heat in 30-second intervals, stirring between each. Never boil—this can make the cheese separate and the texture grainy.
