Soups & Stews
This bean and broccoli soup recipe transforms simple ingredients into a deeply flavorful, hearty meal that feels like a warm hug in a bowl. The secret lies in roasting the garlic and broccoli first, which unlocks a smoky, caramelized depth that no raw prep could match.
I developed this recipe during a particularly chilly winter when I needed something nourishing yet simple to prepare—something that would satisfy without overwhelming my schedule.
The beauty of this soup is in its versatility. It works beautifully as a vegetarian main course or can be easily adapted to suit vegan diets by swapping out butter for olive oil.
The smoky garlic roast technique not only enhances the flavor but also creates a rich, aromatic base that pairs perfectly with the earthy beans and tender broccoli. Every spoonful delivers a balance of textures—creamy from the beans, crisp from the roasted broccoli, and a subtle smokiness that lingers.
What you'll love most is how effortlessly this soup comes together. With just 30 minutes of active prep and 45 minutes of simmering, you'll have a bowl of soup that's packed with nutrients, protein, and flavor.
The broccoli stays vibrant and slightly crisp, while the beans soften just enough to release their creamy goodness. Serve it with a slice of crusty bread to soak up every last drop of that smoky, garlicky broth.
This recipe is also incredibly adaptable—add a sprinkle of cheese for extra richness or boost the protein with a handful of lentils. Whether you're meal prepping for the week or craving a comforting dinner on a cold evening, this bean and broccoli soup delivers on warmth, flavor, and simplicity.
Let's get cooking!
Ingredients for bean and broccoli soup
Simple ingredients with a smoky twist—this soup delivers warmth and depth every time.
| Ingredient | Amount | Notes |
|---|---|---|
| Dried Cannellini Beans 🌾 | 1 ½ cups | Uncooked, soaked overnight |
| Fresh Broccoli 🥦 | 1 ½ lb | Crowns cut into florets |
| Garlic Cloves 🧄 | 8 whole | Peels on for roasting |
| Vegetable Broth 💧 | 4 cups | Low-sodium preferred |
| Extra-Virgin Olive Oil 🫒 | ¼ cup | For roasting garlic |
| Onion 🧅 | 1 whole | Yellow, diced |
| Carrot 🥕 | 2 whole | Medium, diced |
| Celery Stalks 🌿 | 2 whole | Diced, with leaves |
| Canned Diced Tomatoes 🍅 | 1 can | 14.5 oz, San Marzano |
| Vegetarian Butter 🧈 | 2 tbsp | For richness |
| Dried Thyme 🌿 | 1 tsp | Or 1 tbsp fresh |
| Smoked Paprika 🌶️ | 1 tsp | For smoky depth |
| Salt 🧂 | 1 ½ tsp | Kosher or sea salt |
| Black Pepper 🌶️ | ½ tsp | Freshly ground |
The garlic is where the magic happens. Roast those whole cloves with olive oil until caramelized—this gives the soup that rich, smoky aroma. Trader Joe's sells great garlic, but any firm, plump heads work. For the broccoli, look for crowns with bright green florets and sturdy stems. The beans? Cannellini are ideal, but navy or pinto beans work too. Soak overnight to cut cooking time—trust me, it's worth it. The vegetable broth? Low-sodium is key, or you'll end up with a salty mess.
No fresh thyme? Dried works at one-third the amount. Short on smoked paprika? Regular paprika plus a pinch of liquid smoke gets you close. The butter can be swapped for olive oil if you're vegan—just add an extra splash of broth to balance. For the tomatoes, San Marzano cans are worth the splurge, but any good-quality diced tomatoes will do. The onion, carrot, and celery form the flavor base—don't skip this trio, even if you're in a hurry. Pre-chopped veggie mixes from Costco save time if you're short on prep energy.
This soup tastes even better the next day—honestly, the flavors meld beautifully after resting. Keeps for 5 days in the fridge, or freeze portions for 3 months. I always make a double batch because it disappears fast. For meal prep, store in glass containers with a splash of broth on top to keep it fresh. The roasted garlic keeps for 1 week in the fridge if you want to prep ahead—just store it in olive oil.
Why You'll Love This Recipe
- No-Soaking Needed: I’ll be real—soaking beans is a hassle. These dried cannellinis just need a quick rinse before simmering, and they’re ready to transform into that thick, velvety base. Twenty minutes of hands-off cooking, and you’ve got a soup that tastes like it simmered all day.
- Garlic-Broccoli Magic: That first bite? Crisp-tender broccoli florets with garlic so deeply caramelized from the olive oil, it’s like a little flavor explosion. The cannellinis add a buttery creaminess that balances it all—no heavy cream needed, just pure, satisfying depth.
- Lunchbox to Leftovers: Make a big pot on Sunday, and you’ve got lunch for the week. The flavors only get richer as it sits, and it reheats like a dream. Honestly, I double the recipe just so I can have seconds the next day—my kids even ask for it in their school lunches (yes, even on a Tuesday).
- Budget-Buster with Punch: A pound of dried beans and a head of broccoli stretch this soup into six servings without breaking the bank. It’s my go-to when groceries are tight, but somehow it still feels like a treat—especially when you drizzle that good olive oil on top. Frugal doesn’t mean boring, trust me.
Step-by-step instructions for bean and broccoli soup with smoky garlic roast
Here's how to build deep, smoky flavor from the start—no shortcuts, just rich layers of taste.
Roast the Garlic and Sauté the Vegetable Base
Preheat your oven to 400°F. Place the 8 whole garlic cloves (with peels) on a parchment-lined baking sheet, drizzle with 1 tablespoon of the extra-virgin olive oil, and sprinkle with ½ teaspoon salt. Roast for 20-25 minutes until the edges are golden and the cloves look soft when pressed. This caramelized garlic will infuse the entire soup with sweet, nutty depth.
While the garlic roasts, heat a large pot over medium heat and add the 2 tablespoons vegetarian butter. Once melted, add the 1 whole onion, 2 whole carrot, and 2 whole celery stalks (all diced). Sauté for 8-10 minutes until the vegetables soften and the onion becomes translucent. This aromatic trio forms the flavor foundation—don't rush this step or you'll miss out on that essential sweetness.
Build the Smoky Base with Tomatoes and Spices
Add the 1 can canned diced tomatoes (with juices), 1 teaspoon smoked paprika, and 1 teaspoon dried thyme to the pot. Stir well and let it simmer for 5 minutes until the tomatoes break down slightly. The smoked paprika will give your soup that signature depth, while the thyme adds an earthy warmth that pairs perfectly with the beans and broccoli.
Here's the thing—this is where the magic happens. The tomatoes release their natural acids, which help tenderize the beans later. If you notice the mixture looks too thick, add ¼ cup vegetable broth to keep it moving. The goal is a loose, flavorful base that will meld beautifully with the beans.
Add Beans and Broth for a Hearty Foundation
Drain the soaked 1.5 cups dried cannellini beans and add them to the pot along with the 4 cups vegetable broth. Bring everything to a gentle boil, then reduce heat to low and let it simmer for 45-50 minutes. You'll know the beans are ready when they're fork-tender but still hold their shape—no mushy texture here. Stir occasionally to prevent sticking, and if the liquid gets too low, add more broth 1 tablespoon at a time.
Pro tip: The beans will expand dramatically, so don't be surprised if the pot looks fuller than expected. This is normal and means you're on track for a hearty, satisfying soup. If you're worried about overcooking, taste a bean after 40 minutes—it should be soft but still firm.
Incorporate the Roasted Garlic and Broccoli
Once the beans are tender, remove the roasted garlic cloves from their skins and add them to the pot. Stir in the 1.5 lb fresh broccoli florets and simmer for an additional 8-10 minutes until the broccoli is bright green and just tender—not mushy. The roasted garlic will release its sweet, caramelized flavor, creating a perfect balance with the earthy beans and fresh broccoli.
Here's where it gets fun—taste the soup now. You should notice layers of flavor: the smokiness from the paprika, the sweetness of the roasted garlic, the earthiness of the thyme, and the natural sweetness of the caramelized vegetables. If it needs more depth, add a pinch more smoked paprika or a splash of vegetable broth. If it's too thick, thin it out with more broth.
Season and Serve with Confidence
Remove the pot from heat and stir in the 1.5 teaspoon salt and ½ teaspoon black pepper. Let the soup rest for 5 minutes—this allows the flavors to meld and the seasoning to distribute evenly. Give it a final taste and adjust if needed. The seasoning should be balanced: the smokiness should shine, but the natural sweetness of the vegetables and beans should still be present.
Serve the soup warm, garnished with a drizzle of extra-virgin olive oil and a sprinkle of fresh black pepper. Each spoonful should deliver that perfect harmony of textures and flavors—creamy beans, tender broccoli, and layers of smoky, garlicky goodness. And don't forget the crusty bread on the side—this soup is built for sharing.
Pro Tips For Making Bean And Broccoli Soup
- SOAK BEANS OVERNIGHT: I used to skimp on soaking time with cannellini beans, and they’d turn mealy no matter how long I simmered. Three hours in cool water (or overnight) makes them tender without splitting—just drain, rinse, and toss them in cold broth to start cooking. No waiting for a pressure cooker, and the texture stays perfect.
- SIMMER GARLIC LOW: Garlic burns faster than you’d think, especially in broth. Sauté it in olive oil until just fragrant—about 30 seconds—then add the broth immediately. If you let it color, you’ll end up with bitter notes fighting the sweetness of the beans.
- SAVE BROTH FOR BROCCOLI: Broccoli florets release water when cooked, turning your soup into a sad, watery mess. Add them last, after the beans are nearly done, and keep the heat gentle. If it’s looking thin, stir in a splash of reserved broth or a spoonful of the cooking liquid from the beans.
- UPGRADE WITH ACID: A squeeze of lemon or a splash of vinegar at the end brightens everything—trust me, I’ve made this soup bland enough to forget it was edible. Just 1 tablespoon at the end cuts through the heaviness of the beans and makes the garlic sing. (Yes, even if you’re not a fan of tang.)
Wine and beer pairings for bean and broccoli soup
Crisp White Wine
A dry white wine like Sauvignon Blanc or Vermentino cuts through the soup’s richness while complementing its smoky, garlicky notes. Look for a wine with bright acidity and citrus undertones—Kim Crawford Sauvignon Blanc from New Zealand or Feudi di San Gregorio Vermentino from Italy are perfect choices.
The crispness refreshes your palate between each spoonful, balancing the creamy beans and tender broccoli. 🍷
Light-Bodied Red
For a red wine option, go for a light-bodied Pinot Noir with subtle earthiness. A Willamette Valley Pinot Noir or Chianti Classico pairs beautifully with the soup’s smoky depth and herbal thyme notes.
Avoid heavy reds like Cabernet—they’ll overpower the delicate flavors. I love a La Crema Pinot Noir for its silky texture and red fruit undertones that harmonize with the roasted garlic. 🍇
Craft Beer Pairings
A Belgian witbier like Hoegaarden or Allagash White brings a crisp, citrusy contrast to the soup’s smoky richness. The slight tartness and coriander notes in these beers elevate the dish’s complexity.
For a hoppier option, try a light American lager like Miller Lite—its clean finish won’t compete with the soup’s flavors. If you prefer dark beer, a German Dunkel adds a malty depth that pairs surprisingly well with the roasted garlic. 🍺
Non-Alcoholic Options
Skip the alcohol? No problem. A sparkling apple cider like Martinelli’s adds effervescence to cleanse your palate, while a ginger beer like Feani enhances the soup’s smoky warmth. For a savory twist, try sparkling water with a squeeze of lemon—it’s refreshing and lets the soup’s flavors shine.
I often reach for San Pellegrino Aranciata for its citrusy bite, which cuts through the richness beautifully. 🍊
Garnish with Garnish
No matter what you pair, garnish your soup with a drizzle of extra-virgin olive oil and a sprinkle of smoked paprika before serving. This not only enhances the smoky flavor but also signals to your guests that this is a dish worth savoring.
A fresh thyme sprig on the side adds a pop of color and a hint of aroma that ties everything together. 🌿
Nutrition facts
Frequently asked questions
Can I use canned beans instead of dried?
Yes! For convenience, swap 1.5 cups dried cannellini beans with 2.5 cups canned beans (drained and rinsed). Just reduce the simmering time to 20-25 minutes after adding the beans—canned beans cook much faster. The flavor will be slightly different (less earthy), but still delicious and perfect for busy weeknights.
Why does my soup taste bland after cooking?
Most likely, you need more acidity or salt. Add 1 tablespoon lemon juice or ½ teaspoon apple cider vinegar to brighten flavors, or increase salt to 2 teaspoons total. The roasted garlic should add depth—if it tastes mild, try roasting it 5 minutes longer next time for deeper caramelization.
How can I make this soup vegan?
Swap the 2 tablespoons vegetarian butter for 2 tablespoons olive oil and use vegan vegetable broth. For extra richness, stir in 1 tablespoon nutritional yeast at the end—it adds a cheesy, umami flavor that vegans love. The smoked paprika and roasted garlic will still shine through beautifully.
Can I prep this soup ahead of time?
This soup tastes even better the next day. Make it 2 days ahead and store in an airtight container in the fridge. Reheat gently on the stove with a splash of broth to restore texture. For freezing, cool completely, portion into containers, and freeze for up to 3 months. Thaw overnight in the fridge before reheating.
What if I don't have smoked paprika?
No problem! Use 1 teaspoon regular paprika plus ¼ teaspoon liquid smoke for a similar smoky effect. If you're completely without, add ½ teaspoon extra garlic powder to compensate. The roasted garlic will still provide that essential depth—just expect slightly less smokiness in the final dish.
