There’s something really comforting about a bowl of broccoli cheddar soup, especially when you can make it work with plant-based milk.
This recipe brings together all the creamy, cheesy goodness you’d expect from the classic version, but uses oat milk instead of dairy. Tender broccoli florets swim in a rich broth that gets its cheesy flavor from nutritional yeast and a touch of Dijon mustard for depth.
The base starts with aromatic vegetables—onion, garlic, carrots, and celery—sautéed until soft. A quick roux made with flour helps thicken everything up, while the oat milk adds that silky texture without any dairy.
It’s a cozy soup that comes together in one pot, perfect for chilly evenings when you want something warm and satisfying.

Why You’ll Love This Broccoli Cheddar Soup
- Dairy-free comfort – This soup delivers all the creamy, cheesy flavor you crave without any dairy, making it perfect if you’re lactose intolerant or following a plant-based diet.
- Quick weeknight meal – Ready in just 30-45 minutes, this soup is faster than ordering takeout and way more satisfying.
- Packed with vegetables – Between the broccoli, carrots, celery, and onions, you’re getting a nutritious bowl that actually tastes indulgent.
- Simple pantry ingredients – No fancy cheese substitutes needed here—nutritional yeast and oat milk create that rich, cheesy flavor using ingredients you can easily find at any grocery store.
What Kind of Plant-Based Milk Should I Use?
For this broccoli cheddar soup, oat milk is my top choice because it has a naturally creamy texture that mimics dairy milk really well. If you don’t have oat milk on hand, unsweetened soy milk or cashew milk are solid alternatives that will give you a similar richness. I’d steer clear of almond milk for this recipe since it tends to be thinner and can taste a bit watery in savory dishes. Whatever plant-based milk you choose, just make sure it’s the unsweetened variety – you definitely don’t want any vanilla or sweetness competing with the savory flavors in your soup.

Options for Substitutions
This soup is pretty forgiving when it comes to swapping ingredients around:
- Oat milk: Any unsweetened plant-based milk works here – try almond, soy, or cashew milk. Cashew milk will give you the creamiest texture, while coconut milk adds a subtle sweetness (just make sure it’s the carton kind, not canned).
- Nutritional yeast: This is what gives the soup that cheesy flavor without dairy, so I’d recommend keeping it if possible. But if you don’t have it, you can add 1-2 tablespoons of miso paste for a savory, umami kick instead.
- Chicken broth: Swap in vegetable broth to keep this soup completely plant-based. The flavor will be just as good.
- All-purpose flour: For a gluten-free version, use cornstarch (start with 1 1/2 tablespoons) or rice flour in the same amount. Mix it with a bit of cold broth before adding to avoid lumps.
- Dijon mustard: Regular yellow mustard works in a pinch, though you might want to use a bit less since it’s milder. Whole grain mustard also adds nice texture.
- Broccoli: Cauliflower makes a great substitute and gives you that same creamy texture when blended. You can also do a mix of both for variety.
Watch Out for These Mistakes While Cooking
The biggest mistake when making dairy-free broccoli cheddar soup is adding the oat milk too quickly or letting it boil, which can cause it to separate and create an unappetizing texture – keep the heat at a gentle simmer once you’ve added the plant-based milk.
Another common error is not cooking the flour long enough in step 4, which can leave your soup tasting pasty instead of smooth, so make sure to stir it constantly for the full minute until it smells slightly nutty.
When blending, be careful not to over-blend the soup into baby food consistency – pulse it a few times and leave some small chunks of broccoli for better texture and visual appeal.
Finally, taste your soup before serving and adjust the nutritional yeast if needed, since different brands vary in flavor intensity and you might need a bit more to get that cheesy taste you’re looking for.

What to Serve With Broccoli Cheddar Soup?
This soup is hearty enough to be a meal on its own, but I love serving it in a bread bowl for the full cozy experience. If bread bowls aren’t your thing, a crusty baguette or some buttery crackers work perfectly for dipping and scooping up all that creamy goodness. For a lighter option, pair it with a simple side salad with mixed greens and a tangy vinaigrette to balance out the richness of the soup. You could also serve it alongside a half sandwich – turkey or ham on whole grain bread makes for a satisfying combo that’s perfect for lunch or dinner.
Storage Instructions
Store: This soup keeps really well in the fridge for up to 5 days in an airtight container. The oat milk holds up nicely, so you don’t have to worry about it separating too much. It’s perfect for making ahead on Sunday and enjoying throughout the week for easy lunches.
Freeze: You can freeze this soup for up to 3 months in freezer-safe containers or bags. Just let it cool completely first, and leave a little room at the top since it’ll expand when frozen. I like to portion it out into individual servings so I can grab just what I need.
Reheat: Warm it up gently on the stovetop over medium-low heat, stirring occasionally until heated through. You can also microwave it in 1-minute intervals, stirring in between. If it seems a bit thick after storing, just add a splash of oat milk or broth to loosen it up.
| Preparation Time | 10-15 minutes |
| Cooking Time | 20-30 minutes |
| Total Time | 30-45 minutes |
| Level of Difficulty | Easy |
| Servings | 4 servings |
Estimated Nutrition
Estimated nutrition for the whole recipe (without optional ingredients):
- Calories: 500-600
- Protein: 17-21 g
- Fat: 23-28 g
- Carbohydrates: 60-70 g
Ingredients
- 2 garlic cloves (freshly minced)
- 1/2 cup carrots (diced into 1/4-inch pieces)
- 1.5 cups oat milk (unsweetened, for creamier texture)
- 3/4 tsp salt
- 1 tbsp Dijon mustard (for subtle tang and depth)
- 3 cups broccoli (cut into 1-inch florets)
- 1/4 cup nutritional yeast (I use Anthony’s nutritional yeast)
- 1/2 cup celery (chopped into 1/4-inch pieces)
- 2 cups chicken broth
- 1/4 tsp paprika (freshly ground if possible)
- 2 tbsp all-purpose flour (I use King Arthur all-purpose flour)
- 1 small onion (diced into 1/2-inch pieces)
- 3 tbsp olive oil (or any neutral oil like canola)
Step 1: Prepare Mise en Place and Build the Aromatic Base
- 1 small onion
- 1/2 cup celery
- 1/2 cup carrots
- 2 garlic cloves
- 3 cups broccoli
- 3 tbsp olive oil
Dice the onion into 1/2-inch pieces, chop the celery into 1/4-inch pieces, dice the carrots into 1/4-inch pieces, mince the garlic cloves, and cut the broccoli into 1-inch florets.
Having everything prepped and ready makes the cooking process smooth and prevents overcooking of any components.
Heat 3 tablespoons of olive oil in a large pot over medium heat until shimmering, then add the diced onion and celery.
Cook for about 5 minutes, stirring occasionally, until the vegetables soften and become translucent—this develops a sweet, mellow flavor foundation that anchors the entire soup.
Step 2: Bloom the Aromatics and Create the Roux Base
- aromatics from Step 1
- 2 tbsp all-purpose flour
Add the minced garlic to the softened onion and celery mixture and cook for about 1 minute, stirring constantly, until fragrant—this quick bloom releases the garlic’s essential oils and prevents it from burning.
Immediately sprinkle the flour over the vegetables and stir continuously for another minute, coating all the vegetables evenly.
This creates a roux that will thicken the soup and add a subtle toasted flavor.
I like to add the flour right after the garlic so the residual heat helps cook it out slightly, which gives the final soup a smoother texture.
Step 3: Deglaze and Build the Broth Base
- 2 cups chicken broth
Slowly pour the chicken broth into the pot while whisking constantly to prevent lumps from forming in the roux.
Whisk until the mixture is smooth and well combined, about 1-2 minutes.
The gradual addition and whisking ensures the flour dissolves evenly and creates a silky, lump-free base rather than a gloppy soup.
Step 4: Add Vegetables and Simmer Until Tender
- 1.5 cups oat milk
- prepped carrots and broccoli from Step 1
- 3/4 tsp salt
Pour in the oat milk and stir well to combine.
Add the diced carrots and broccoli florets from your mise en place, along with the salt.
Bring the mixture to a gentle simmer over medium heat and cook for approximately 10 minutes, stirring occasionally, until the broccoli and carrots are completely tender when pierced with a fork.
The oat milk adds richness and creaminess that mimics traditional cream, while simmering gently ensures the broccoli cooks evenly without becoming mushy.
Step 5: Season and Finish the Soup
- 1/4 cup nutritional yeast
- 1 tbsp Dijon mustard
- 1/4 tsp paprika
Remove the pot from heat and stir in the nutritional yeast, Dijon mustard, and paprika, stirring well until everything is fully incorporated.
The nutritional yeast adds a savory, cheesy depth that replaces traditional cheddar cheese beautifully, while the Dijon mustard brings subtle tang and complexity.
Let it sit for 1 minute off the heat to allow the flavors to meld gently.
Step 6: Blend to Desired Consistency and Serve
Using an immersion blender, blend the soup while leaving some chunks of broccoli and carrots visible—this creates a rustic texture that’s more interesting than a completely smooth purée.
Blend for about 1-2 minutes, working the blender around the pot to catch all the vegetables, until you reach a soup that’s mostly creamy with some vegetable pieces throughout.
I find that keeping some texture makes the soup feel more substantial and lets you taste the individual vegetables rather than just cream.
Taste and adjust seasoning with additional salt or mustard as needed, then ladle into bowls and serve hot.

Mouthwatering Broccoli Cheddar Soup with Plant Based Milk
Ingredients
- 2 garlic cloves (freshly minced)
- 1/2 cup carrots (diced into 1/4-inch pieces)
- 1.5 cups oat milk (unsweetened, for creamier texture)
- 3/4 tsp salt
- 1 tbsp Dijon mustard (for subtle tang and depth)
- 3 cups broccoli (cut into 1-inch florets)
- 1/4 cup nutritional yeast (I use Anthony's nutritional yeast)
- 1/2 cup celery (chopped into 1/4-inch pieces)
- 2 cups chicken broth
- 1/4 tsp paprika (freshly ground if possible)
- 2 tbsp all-purpose flour (I use King Arthur all-purpose flour)
- 1 small onion (diced into 1/2-inch pieces)
- 3 tbsp olive oil (or any neutral oil like canola)
Instructions
- Dice the onion into 1/2-inch pieces, chop the celery into 1/4-inch pieces, dice the carrots into 1/4-inch pieces, mince the garlic cloves, and cut the broccoli into 1-inch florets. Having everything prepped and ready makes the cooking process smooth and prevents overcooking of any components. Heat 3 tablespoons of olive oil in a large pot over medium heat until shimmering, then add the diced onion and celery. Cook for about 5 minutes, stirring occasionally, until the vegetables soften and become translucent—this develops a sweet, mellow flavor foundation that anchors the entire soup.
- Add the minced garlic to the softened onion and celery mixture and cook for about 1 minute, stirring constantly, until fragrant—this quick bloom releases the garlic's essential oils and prevents it from burning. Immediately sprinkle the flour over the vegetables and stir continuously for another minute, coating all the vegetables evenly. This creates a roux that will thicken the soup and add a subtle toasted flavor. I like to add the flour right after the garlic so the residual heat helps cook it out slightly, which gives the final soup a smoother texture.
- Slowly pour the chicken broth into the pot while whisking constantly to prevent lumps from forming in the roux. Whisk until the mixture is smooth and well combined, about 1-2 minutes. The gradual addition and whisking ensures the flour dissolves evenly and creates a silky, lump-free base rather than a gloppy soup.
- Pour in the oat milk and stir well to combine. Add the diced carrots and broccoli florets from your mise en place, along with the salt. Bring the mixture to a gentle simmer over medium heat and cook for approximately 10 minutes, stirring occasionally, until the broccoli and carrots are completely tender when pierced with a fork. The oat milk adds richness and creaminess that mimics traditional cream, while simmering gently ensures the broccoli cooks evenly without becoming mushy.
- Remove the pot from heat and stir in the nutritional yeast, Dijon mustard, and paprika, stirring well until everything is fully incorporated. The nutritional yeast adds a savory, cheesy depth that replaces traditional cheddar cheese beautifully, while the Dijon mustard brings subtle tang and complexity. Let it sit for 1 minute off the heat to allow the flavors to meld gently.
- Using an immersion blender, blend the soup while leaving some chunks of broccoli and carrots visible—this creates a rustic texture that's more interesting than a completely smooth purée. Blend for about 1-2 minutes, working the blender around the pot to catch all the vegetables, until you reach a soup that's mostly creamy with some vegetable pieces throughout. I find that keeping some texture makes the soup feel more substantial and lets you taste the individual vegetables rather than just cream. Taste and adjust seasoning with additional salt or mustard as needed, then ladle into bowls and serve hot.