Rich, velvety, and deeply comforting — a thick, creamy soup loaded with tender vegetables and a bold, sharp cheddar base that is warming, satisfying, and impossibly good on a cold day. A beloved Canadian classic that is pure liquid comfort in every spoonful.
INGREDIENTS
- 4 tablespoons unsalted butter
- 1 medium yellow onion, finely diced
- 3 celery stalks, finely diced
- 2 large carrots, peeled and finely diced
- 4 garlic cloves, minced
- 0.33 cups all-purpose flour
- 4 cups chicken broth
- 2 cups whole milk, warm
- 1 cup heavy cream, warm
- 3 cups sharp cheddar cheese, freshly shredded
- 0.5 cups Gruyère cheese, freshly shredded
- 1 teaspoon salt
- 1 teaspoon black pepper
- 1 teaspoon garlic powder
- 0.5 teaspoons onion powder
- 0.5 teaspoons smoked paprika
- 0.5 teaspoons dry mustard powder
- 0.25 teaspoons cayenne pepper (optional)
- 1 tablespoon Worcestershire sauce
- 1 tablespoon fresh lemon juice
- 6 strips thick-cut bacon, cooked crispy and crumbled, for garnish
- 3 green onions, thinly sliced, for garnish
- extra shredded cheddar, for garnish
- crusty bread or soft rolls, for serving
STEPS
- Cook the vegetables: Melt the butter in a large Dutch oven or heavy-bottomed pot over medium heat. Add the diced onion, celery, and carrots and cook, stirring occasionally, for 8–10 minutes until completely softened and lightly golden. Add the minced garlic and cook for 1 minute until fragrant.
- Make the roux: Sprinkle the flour over the cooked vegetables and stir constantly for 1–2 minutes until the flour is fully absorbed and lightly golden. Cooking out the raw flour taste is essential for a clean, smooth-flavored soup.
- Build the broth: Gradually pour in the chicken broth, whisking continuously to prevent any lumps from forming. Bring to a gentle boil over medium-high heat, stirring frequently, then reduce to a steady simmer. Cook for 10 minutes, stirring occasionally, until the broth has thickened slightly and the vegetables are completely tender.
- Add the dairy: Reduce heat to medium-low. Pour in the warm whole milk and heavy cream, stirring constantly. Add the Worcestershire sauce, salt, black pepper, garlic powder, onion powder, smoked paprika, dry mustard powder, and cayenne if using. Simmer gently for 5 minutes, stirring frequently — do not let the soup boil hard after the dairy is added or it may curdle.
- Melt the cheese: Remove the pot from heat. Add the shredded cheddar and Gruyère in large handfuls, stirring after each addition until completely melted and the soup is gloriously smooth and velvety. Adding the cheese off the heat prevents it from breaking and turning greasy — always do this step away from direct heat. Stir in the fresh lemon juice — it brightens the entire soup and balances the richness of the cheese beautifully.
- Blend if desired: For an ultra-smooth, restaurant-style soup use an immersion blender to blend partially or fully to your preferred consistency. Leave it chunky for a more rustic, hearty bowl or blend completely for a silky, elegant finish.
- Serve: Ladle into deep bowls and top with crumbled crispy bacon, sliced green onions, and a pinch of extra shredded cheddar. Serve immediately with crusty bread or soft rolls alongside.
NOTES Tips: Always use freshly shredded cheese — pre-shredded contains anti-caking agents that prevent it from melting properly and will make the soup grainy and broken no matter how carefully you make the base. Adding the cheese off the heat is non-negotiable — high heat causes the proteins in cheese to seize and the fat to separate, resulting in a greasy, curdled soup. Warming the milk and cream before adding them to the soup prevents the temperature from dropping too dramatically and reduces the risk of curdling. Dry mustard powder is a small but important addition — it enhances and sharpens the cheddar flavor significantly without adding any detectable mustard taste. The fresh lemon juice stirred in at the end is the finishing touch that lifts and brightens the entire soup — do not skip it. This soup keeps refrigerated for up to 3 days and reheats gently on the stovetop over medium-low heat with a splash of warm milk stirred in to loosen — never boil when reheating.

