Warm, creamy, and deeply satisfying, this broccoli and cauliflower cheese soup transforms humble cruciferous vegetables into an elegant, restaurant-worthy dish. While many recipes rely on heavy cream or processed cheese for richness, our version builds flavor through careful layering of aromatics, a homemade roux, and a blend of high-quality cheeses that melt into a velvety, cohesive emulsion. Perfect for a chilly evening or as a sophisticated starter, this soup balances the earthy notes of broccoli and cauliflower with the sharp, nutty complexity of aged cheddar and Parmesan.
Why This Recipe Works
- Sautéing aromatics like onion and garlic in butter until translucent builds a sweet, savory foundation without browning, which can introduce bitter notes.
- Creating a roux with flour and butter before adding liquid ensures a stable, lump-free thickening agent that yields a consistently smooth texture.
- Simmering the broccoli and cauliflower florets in vegetable broth until just tender—about 12–15 minutes—preserves their vibrant color and delicate flavor while preventing mushiness.
- Using an immersion blender to purée the soup directly in the pot achieves a perfectly uniform consistency without the risk of splatters or transferring hot liquids.
- Incorporating shredded sharp cheddar and grated Parmesan off the heat, while stirring constantly, allows the cheeses to melt gradually into a silky emulsion without seizing or becoming grainy.
Ingredients
- 4 tablespoons unsalted butter
- 1 large yellow onion, finely diced (about 2 cups)
- 4 cloves garlic, minced
- 1/4 cup all-purpose flour
- 4 cups low-sodium vegetable broth
- 1 head broccoli, cut into small florets (about 4 cups)
- 1 head cauliflower, cut into small florets (about 4 cups)
- 2 cups whole milk
- 8 ounces sharp cheddar cheese, freshly shredded
- 1/2 cup Parmesan cheese, freshly grated
- 1 teaspoon kosher salt, plus more to taste
- 1/2 teaspoon freshly ground black pepper
- 1/4 teaspoon freshly grated nutmeg
- 2 tablespoons chopped fresh chives, for garnish
Equipment Needed
- Large Dutch oven or heavy-bottomed soup pot (6–8 quarts)
- Wooden spoon or silicone spatula
- Immersion blender (or standard blender with vented lid)
- Fine-mesh strainer (optional, for straining aromatics)
- Measuring cups and spoons
- Cheese grater
- Cutting board and chef’s knife
Instructions

Step 1: Sauté the Aromatics
Begin by melting the unsalted butter in a large Dutch oven over medium-low heat. Once the butter has fully liquefied and begins to foam slightly, add the finely diced yellow onion. Cook the onion, stirring frequently with a wooden spoon, for 8–10 minutes until it becomes translucent and soft, but without allowing it to take on any color. Browning the onion at this stage would introduce a caramelized, sweet flavor that can overpower the delicate vegetal notes of the broccoli and cauliflower. After the onion has softened, add the minced garlic and continue to cook for an additional 60–90 seconds, just until the garlic becomes fragrant. Be vigilant here, as garlic can burn quickly and turn bitter, which would compromise the entire flavor base of the soup. Tip: For an even smoother final texture, you can strain out the sautéed onion and garlic after this step, though it’s not necessary if you plan to purée the soup thoroughly later.
Step 2: Build the Roux
With the aromatics still in the pot, sprinkle the all-purpose flour evenly over the onion and garlic mixture. Immediately begin stirring with the wooden spoon to incorporate the flour into the butter, creating a paste-like consistency known as a roux. Continue cooking the roux over medium-low heat, stirring constantly, for 2–3 minutes. This cooking time is crucial to eliminate the raw flour taste and to allow the starch granules to swell, which will later help thicken the soup evenly. The roux should take on a pale golden color and emit a slightly nutty aroma, but it should not darken beyond a light beige. If the roux begins to brown, reduce the heat immediately, as a darker roux would alter the flavor profile and thickening power. Once the roux is properly cooked, you’re ready to introduce the liquid components.
Step 3: Incorporate Liquids and Vegetables
Gradually pour in the low-sodium vegetable broth while whisking vigorously to prevent any lumps from forming in the roux. Increase the heat to medium-high and bring the mixture to a gentle simmer, which should take about 4–5 minutes. Once simmering, add the broccoli and cauliflower florets, along with the kosher salt, black pepper, and freshly grated nutmeg. The nutmeg adds a warm, aromatic depth that complements the cheese beautifully. Reduce the heat to medium-low, cover the pot partially with a lid, and allow the soup to simmer gently for 12–15 minutes. The vegetables should become tender enough to pierce easily with a fork but still retain a slight bite and vibrant green and white hues. Overcooking at this stage will result in a dull-colored, mushy soup. Tip: For a more intense vegetable flavor, you can roast the broccoli and cauliflower florets at 425°F for 20–25 minutes before adding them to the soup, though this will extend the total cook time.
Step 4: Purée to Desired Consistency
After the vegetables have reached the desired tenderness, remove the pot from the heat. Using an immersion blender, carefully purée the soup directly in the pot until it reaches a smooth, velvety consistency. If you prefer a chunkier texture, blend only half of the soup, or use a potato masher to break down some of the florets while leaving others intact. For those using a standard blender, work in batches, filling the blender no more than halfway, and always vent the lid by removing the center cap and covering it with a kitchen towel to prevent steam buildup and potential explosions. Once puréed, return the soup to the pot if necessary and stir in the whole milk. Place the pot back over low heat and warm the soup through, but do not allow it to boil, as boiling can cause the dairy to separate or curdle.
Step 5: Emulsify the Cheese
With the soup warmed through but not boiling, turn off the heat completely. Gradually add the freshly shredded sharp cheddar and grated Parmesan cheese, a handful at a time, while stirring constantly with a wooden spoon. The key here is to add the cheese off the heat and to incorporate it slowly, allowing each addition to melt fully before adding more. This technique prevents the cheese from seizing or becoming grainy, ensuring a luxuriously smooth emulsion. Once all the cheese has been incorporated, taste the soup and adjust the seasoning with additional salt and pepper if needed. The soup should be rich, creamy, and well-balanced, with the sharpness of the cheddar and the umami of the Parmesan shining through. Tip: For an extra-silky finish, you can pass the soup through a fine-mesh strainer after adding the cheese, though this is optional and may remove some desirable fiber.
Step 6: Garnish and Serve
Ladle the hot soup into pre-warmed bowls. Garnish each serving with a sprinkle of freshly chopped chives, which add a bright, oniony contrast to the rich, creamy base. For additional texture and flavor, consider topping with homemade croutons, a drizzle of high-quality extra-virgin olive oil, or a few extra shreds of cheddar cheese. Serve immediately while the soup is piping hot, as it will thicken slightly as it cools. If you need to reheat leftovers, do so gently over low heat, stirring frequently, and consider adding a splash of milk or broth to restore the original consistency. Avoid microwaving on high power, as this can cause the cheese to separate and the soup to become oily.
Tips and Tricks
For a deeper, more complex flavor profile, consider roasting the broccoli and cauliflower florets at 425°F for 20–25 minutes until lightly caramelized before adding them to the soup. This step intensifies their natural sweetness and adds a subtle smoky note. If you prefer a thicker soup, you can increase the roux by adding an extra tablespoon of butter and flour, or incorporate a peeled and diced russet potato during the vegetable simmering stage; the potato’s starch will naturally thicken the purée. To make this soup ahead of time, prepare it through the puréeing stage, then cool completely and refrigerate for up to 3 days. When ready to serve, reheat gently and add the cheese off the heat as directed. For a dairy-free variation, substitute the butter with olive oil, use unsweetened almond or cashew milk in place of whole milk, and opt for a high-quality vegan cheddar-style cheese that melts well.
Recipe Variations
- Smoky Bacon and Cheddar: Render 6 slices of diced thick-cut bacon in the pot before sautéing the onion, using the bacon fat in place of some or all of the butter. Garnish the finished soup with the crispy bacon bits and an extra sprinkle of smoked cheddar.
- Curried Cauliflower and Broccoli: Add 2 tablespoons of curry powder and 1 teaspoon of turmeric to the roux along with the flour, and use coconut milk instead of whole milk. Finish with a squeeze of lime juice and cilantro garnish for a vibrant, globally inspired twist.
- Loaded Baked Potato Style: Stir in 1 cup of sour cream along with the cheese, and garnish each bowl with chopped scallions, shredded cheddar, and crumbled cooked bacon or vegetarian bacon bits.
- Herb-Infused: Add a bouquet garni of fresh thyme, rosemary, and a bay leaf to the pot while simmering the vegetables, removing it before puréeing. Finish with a tablespoon of chopped fresh parsley or dill for a garden-fresh accent.
- Spicy Kick: Sauté 1–2 finely chopped jalapeños (seeds removed for less heat) with the onion, and add a pinch of cayenne pepper or a dash of hot sauce when seasoning. Garnish with sliced jalapeños and a dollop of cool sour cream to balance the heat.
Frequently Asked Questions
Q: Can I use frozen broccoli and cauliflower instead of fresh?
A: Yes, frozen florets work well and can save prep time. Use them directly from frozen, but note they may release more water, so simmer for an extra 2–3 minutes to evaporate excess liquid and prevent a watery soup. No need to thaw, as this can make them mushy.
Q: Why did my cheese soup turn grainy or separate?
A: Graininess usually occurs if the cheese is added while the soup is too hot or too quickly. Always remove the pot from heat, add cheese gradually, and stir constantly to allow it to melt smoothly. Using pre-shredded cheese, which contains anti-caking agents, can also contribute to a grainy texture.
Q: How can I make this soup gluten-free?
A: Substitute the all-purpose flour with an equal amount of gluten-free flour blend or cornstarch. For cornstarch, mix it with a little cold water to form a slurry, then whisk it into the soup after adding the broth and before adding vegetables.
Q: Can I freeze broccoli and cauliflower cheese soup?
A: Freezing is not recommended, as dairy-based soups can separate and become watery when thawed. The cheese may also lose its smooth emulsion. For best results, store in the refrigerator for up to 3 days and reheat gently on the stovetop.
Q: What’s the best way to reheat leftovers without curdling?
A: Reheat slowly over low heat, stirring frequently. If the soup has thickened too much, add a splash of milk or broth to loosen it. Avoid boiling, as high heat can cause the dairy and cheese to break down and curdle.
Summary
This chef-inspired broccoli and cauliflower cheese soup achieves a velvety, restaurant-quality texture through a carefully built roux, gentle vegetable simmering, and off-heat cheese emulsification. Perfect for experienced cooks seeking a nutrient-packed comfort dish with professional finesse.




