There’s a version of this soup that comes out watery, weirdly green, and kind of sad.
And then there’s this version — thick, deeply cheesy, loaded with tender broccoli, and honestly one of those things you’ll want to make on repeat from October through March.
I’ve tested this more times than I’d like to admit. And the difference between a mediocre broccoli cheese soup and one that makes you go “okay, this is it” comes down to a few small things that most recipes skip over.
Stick with me, because I’m covering all of them.

What You’ll Need
For the soup base:
- 4 tablespoons unsalted butter
- 1 medium yellow onion, finely diced
- 3 cloves garlic, minced
- 1/4 cup all-purpose flour
- 2 cups chicken broth (or vegetable broth)
- 2 cups whole milk
- 1 cup heavy cream
- 1/2 teaspoon dry mustard powder
- 1/4 teaspoon smoked paprika
- Salt and black pepper to taste
For the broccoli:
- 4 cups fresh broccoli florets, roughly chopped (about 2 medium heads)
- 1 medium carrot, grated or julienned
For the cheese:
- 2.5 cups sharp cheddar cheese, freshly shredded (more on this below 👇)
- 1/4 cup Gruyère, freshly shredded (optional but very worth it)
Tools You’ll Need
- Large heavy-bottomed pot or Dutch oven
- Wooden spoon or silicone spatula
- Whisk
- Box grater or food processor for shredding cheese
- Measuring cups and spoons
- Ladle
- Immersion blender (optional, for texture control)
- Cutting board and sharp knife
Pro Tips
These are the things I wish someone had told me the first few times I made this.
- Shred your own cheese. Pre-shredded cheese from a bag has a coating on it (usually cellulose or potato starch) that prevents it from melting smoothly. You’ll end up with a grainy, clumpy soup. Buy a block and grate it yourself. Takes 3 extra minutes and makes a massive difference.
- Don’t skip the roux. The flour-and-butter base is what gives the soup that thick, velvety texture. If you skip it or rush it, the soup will be thin. Cook the flour in the butter for at least 1-2 minutes before adding your liquids.
- Add the cheese off the heat. This is the single most important tip. Once your soup is done cooking, pull it off the burner and then stir in the cheese. High heat makes proteins in the cheese seize up, which gives you that greasy, broken texture. Off the heat, it melts in perfectly.
- Chop your broccoli small. Big chunks take longer to cook and make the soup chunky in an awkward way. Aim for bite-sized pieces so every spoonful gets a good mix of broccoli and cheese.
- Taste and adjust at the end. Cheese is salty. Broth is salty. Don’t add salt until everything is combined and you’ve had a proper taste.
Substitutions and Variations
Make it vegetarian: Swap the chicken broth for a good vegetable broth. The flavor will be slightly lighter but still really good.
Make it gluten-free: Use a 1:1 gluten-free flour blend in place of all-purpose flour. Works well.
Swap the cheese: Sharp cheddar is the classic, but a mix of white cheddar and Gouda is incredible. Fontina also works beautifully here.
Add protein: Cooked, diced bacon or ham stirred in at the end is a really popular addition. Smoked sausage works too.
Make it spicy: A pinch of cayenne or a few dashes of hot sauce added at the end gives it a subtle kick that pairs really well with the richness of the cheese.
Lighter version: Sub the heavy cream for half-and-half or even just more whole milk. The soup will be thinner but still good.
Make-Ahead Tips
This soup reheats beautifully, which makes it a great candidate for meal prep.
- Make the full batch, let it cool completely, then store it in airtight containers in the fridge for up to 4 days.
- Reheat on the stovetop over low-medium heat, stirring frequently. Add a splash of broth or milk if it’s thickened up too much.
- Freezing: The texture can change slightly after freezing (dairy-based soups can separate), so it’s best enjoyed fresh or within a few days. If you do freeze it, thaw overnight in the fridge and reheat slowly while whisking.
How to Make It
Step 1: Sauté the aromatics
Melt the butter in a large pot over medium heat. Add the diced onion and cook for 4-5 minutes until soft and translucent. Add the garlic and cook for another 60 seconds until fragrant.
Step 2: Make the roux
Add the flour to the pot and stir it into the butter and onion mixture. Cook for 1-2 minutes, stirring constantly. It should look like a thick paste and smell slightly nutty. This step cooks out the raw flour taste.
Step 3: Add the liquids
Slowly pour in the chicken broth while whisking to avoid lumps. Then add the milk and heavy cream. Whisk until everything is smooth and combined.
Step 4: Season the base
Add the dry mustard powder, smoked paprika, a good pinch of salt, and black pepper. Stir to combine.
Step 5: Add the broccoli and carrot
Add the broccoli florets and grated carrot. Bring the soup to a gentle simmer over medium heat. Cook for 15-20 minutes, stirring occasionally, until the broccoli is completely tender.
Step 6: Blend (optional)
At this point you have two options. Leave it chunky (most people prefer this) or use an immersion blender to blend a portion of the soup. I like to do a quick blend of about half the pot — it makes the base creamier while keeping some broccoli texture.
Step 7: Add the cheese
Turn off the heat. This is important. Let the soup sit for 30 seconds, then slowly stir in your shredded cheddar and Gruyère, one handful at a time. Stir between each addition until fully melted. Taste and adjust salt and pepper.
Step 8: Serve
Ladle into bowls and top with extra shredded cheese, cracked black pepper, or croutons if you’re into that. Crusty bread on the side is never a bad idea.
Nutritional Breakdown (Per Serving)
Based on 6 servings
| Nutrient | Amount |
|---|---|
| Calories | ~420 kcal |
| Protein | 18g |
| Carbohydrates | 18g |
| Fat | 32g |
| Fiber | 3g |
| Calcium | 40% DV |
| Vitamin C | 70% DV |
Broccoli is one of the most nutrient-dense vegetables out there — it’s loaded with Vitamin C, Vitamin K, folate, and antioxidants. So even though this is a cheesy, creamy soup, you’re still getting a solid amount of actual nutrition in every bowl.
Meal Pairing Suggestions
This soup is filling enough to stand alone as a meal, but a few things pair with it really well:
- Crusty sourdough or French bread for dipping
- A simple green salad with a tangy vinaigrette to cut through the richness
- Grilled cheese sandwich on the side (classic for a reason)
- Roasted garlic bread if you want to go all in on comfort food
Leftovers and Storage
- Fridge: Store in an airtight container for up to 4 days.
- Reheating: Low and slow on the stovetop works best. Stir often and add a splash of broth or milk if needed to loosen the consistency.
- Microwave: Works fine in a pinch. Heat in 60-second intervals and stir between each.
- Freezing: Possible but not ideal. Dairy-based soups can separate after freezing. If you do freeze it, reheat slowly and whisk well to bring it back together.
FAQ
Can I use frozen broccoli?
Yes, frozen broccoli works here. No need to thaw it first — just add it straight to the pot. It’ll cook down quickly and the texture will be slightly softer than fresh, but still good.
My soup turned out grainy. What happened?
This almost always comes down to adding the cheese while the heat is still on. High heat causes the fat in the cheese to separate from the proteins, giving you that gritty texture. Always add cheese off the heat, and go slowly.
Can I make this in a slow cooker?
You can, but the roux step is a little tricky. Make the roux on the stovetop first, whisk in the broth and milk, then transfer everything (including broccoli and carrot) to the slow cooker. Cook on low for 3-4 hours or high for 2 hours. Add cheese at the end, off the heat, before serving.
How do I make it thicker?
If your soup is thinner than you’d like, mix 1 tablespoon of cornstarch with 2 tablespoons of cold water in a small bowl and whisk it into the simmering soup. Let it cook for another 3-4 minutes and it’ll thicken up.
Can I use a different type of broth?
Absolutely. Vegetable broth works great. Some people use a mix of broth and beer (usually a lighter beer like a lager) for a slightly different depth of flavor. It’s worth trying if you want to switch things up.
Is this soup kid-friendly?
Very much so. It’s mild, creamy, and the broccoli basically disappears into the cheese. One of those sneaky ways to get vegetables into a meal without any complaints.
Wrapping Up
This broccoli cheese soup is one of those recipes that rewards you for making it from scratch.
It’s not complicated, it doesn’t take long, and once you nail the technique (roux, fresh cheese, cheese off the heat), you’ll have something genuinely good on your hands.
Make it on a Sunday afternoon. Have it for dinner. Take leftovers to work. Serve it at a gathering and watch people ask you for the recipe.
And when you do make it, come back and drop a comment below. I’d love to hear how it turned out and what tweaks you made along the way. Any questions, leave those too.