This hearty tomato soup combines a classic vegetable base with cannellini beans and Greek yogurt, delivering 14g of protein per serving without sacrificing flavor.
The beans blend seamlessly into the velvety texture while the yogurt adds creaminess and a protein punch, making it far more filling than traditional tomato soup.
Ready in just 35 minutes with simple sautéing, simmering, and blending steps, it's an easy weeknight option that works for both vegetarians and those avoiding gluten.
The rain was hammering against the kitchen window so hard I could barely hear the radio, which honestly felt like permission to ignore everything else and just cook. I had half a pantry staring back at me, two cans of tomatoes that had migrated to the front, and a container of Greek yogurt I needed to use before it turned questionable. Tomato soup felt obvious, but a bowl that would actually keep me full for more than an hour felt like a taller order. Throwing in a can of cannellini beans changed the whole conversation.
My roommate walked in halfway through, sniffed the air, and asked if I was hiding a restaurant in the kitchen. I ladled her a bowl before I had even seasoned mine properly, and she sat on the counter eating it in silence, which is honestly the highest compliment she knows how to give.
Ingredients
- Olive oil (1 tablespoon): Just enough to soften the vegetables without making anything greasy, a little goes a long way here.
- Onion (1 medium, diced): The backbone of nearly every good soup, cook it patiently until it turns sweet and translucent.
- Garlic (2 cloves, minced): Add it after the onion has had a head start so it never browns or turns bitter.
- Carrot (1 large, peeled and diced): Brings a subtle sweetness that balances the acidity of the tomatoes beautifully.
- Celery (1 stalk, diced): An unsung hero that adds a quiet savory depth you would absolutely miss if you skipped it.
- Diced tomatoes (800 g, 2 cans): The heart of the soup, do not drain them because you want every bit of that juice.
- Tomato paste (2 tablespoons): Concentrates the tomato flavor in a way that plain tomatoes alone simply cannot achieve.
- Low sodium vegetable broth (500 ml): Gives the soup body while letting you control the salt level yourself.
- Cannellini beans (400 g, 1 can, drained and rinsed): This is your protein secret weapon, they puree into absolute silk.
- Plain Greek yogurt (200 g): Stirred in off the heat, it creates creaminess and adds a serious protein punch.
- Dried basil (1 teaspoon): A reliable stand in when fresh basil is not around, crush it between your fingers first to wake it up.
- Dried oregano (1 teaspoon): Pairs naturally with tomato and adds an earthy, slightly floral note.
- Smoked paprika (1/2 teaspoon): Just a half teaspoon but it gives the whole pot a warm, faintly smoky undertone.
- Salt and pepper: Taste at the end and adjust generously, soup needs more seasoning than you think.
- Fresh basil leaves (optional): Torn over the top right before serving for color and a bright pop of freshness.
Instructions
- Build the flavor base:
- Heat the olive oil in a large saucepan over medium heat, then add the onion, garlic, carrot, and celery, stirring occasionally until everything softens and your kitchen smells like the coziest place on earth, about five or six minutes.
- Create the tomato broth:
- Stir in the tomato paste and let it cook for about thirty seconds until it darkens slightly, then pour in the diced tomatoes with their juice and the vegetable broth, bringing everything to a gentle simmer.
- Add the beans and spices:
- Tumble in the rinsed cannellini beans along with the basil, oregano, smoked paprika, salt, and pepper, then let the whole pot bubble away gently for fifteen minutes so the flavors have time to properly mingle.
- Blend until smooth:
- Take the pot off the heat and use an immersion blender to puree everything until perfectly smooth, or work in careful batches with a standard blender, always remembering to leave the lid slightly ajar for steam to escape.
- Finish with yogurt:
- Return the pureed soup to low heat and stir in the Greek yogurt slowly, whisking gently until it melts seamlessly into the soup and everything is heated through but never boiling.
- Taste and serve:
- Give it one last taste for salt and pepper, then ladle into bowls and top with fresh basil leaves and an extra swirl of yogurt if you are feeling generous.
I packed the leftovers in a thermos for work the next day and three coworkers stopped me in the break room asking what smelled so good. Sharing the recipe felt less like handing over instructions and more like passing along a small comfort that had genuinely rescued a rainy afternoon.
Serving Ideas That Actually Work
This soup is hearty enough to stand alone but it really shines when you tear into a piece of crusty sourdough and use it to mop up every last drop. A simple side salad with a sharp vinaigrette cuts through the richness nicely if you want something more complete. I have also been known to crumble feta on top when I want a little extra salt and texture without much effort.
Storing and Reheating Like a Pro
The flavors deepen overnight in the fridge, making this one of those rare soups that might actually taste better on day two. Store it in an airtight container for up to four days, and reheat gently on the stove over low heat rather than aggressively microwaving it. A quick stir as it warms brings the creamy texture right back to life.
Variations Worth Trying
Once you have the base down, this soup becomes a playground for whatever you have on hand. A pinch of chili flakes transforms it into something bolder and more assertive on cold evenings. You can swap the Greek yogurt for coconut yogurt to make it completely vegan without losing any of the creaminess.
- Roasted red peppers blended in alongside the tomatoes add a subtle sweetness and a deeper red color.
- A parmesan rind dropped into the simmering broth infuses the whole pot with a savory depth you cannot get any other way.
- Always taste and season at the very end because the flavor shifts as the soup cools and settles.
Some recipes earn their place in your rotation through sheer convenience, and this one did exactly that on a rainy Tuesday with nothing in the fridge. It is warm, filling, and quietly nutritious in a way that never feels like a compromise. Keep a couple of cans of tomatoes and beans in your pantry and you are always twenty minutes away from something that feels like care.
Recipe FAQ
- → Can I make this soup ahead of time?
-
Yes, this soup stores beautifully. Refrigerate in an airtight container for up to 4 days. Reheat gently on the stovetop over low heat, stirring occasionally to maintain the creamy texture.
- → What can I substitute for cannellini beans?
-
Butter beans or navy beans work well as alternatives. They offer a similar creamy texture when blended and comparable protein content.
- → How do I prevent the Greek yogurt from curdling?
-
Always remove the soup from direct heat before stirring in the yogurt. Add it gradually while stirring continuously. Returning to gentle low heat afterward helps it incorporate smoothly without separating.
- → Can I freeze this soup?
-
You can freeze it, but the texture may change slightly due to the yogurt. For best results, freeze the soup before adding yogurt, then stir in fresh yogurt when reheating. It keeps well frozen for up to 3 months.
- → What should I serve with this soup?
-
Crusty whole-grain bread, a side salad, or grilled cheese sandwiches pair wonderfully. For extra protein, top with toasted pumpkin seeds or serve alongside quinoa.
- → Is there a dairy-free version?
-
Substitute the Greek yogurt with unsweetened soy yogurt or full-fat coconut yogurt. Both maintain creaminess while keeping the dish plant-based and vegan-friendly.