I love this soup because it’s so quick to make yet tastes like it’s been simmering all day. The trick of blending some of the beans with sautéed vegetables creates a naturally creamy texture without needing much cream. The tomato paste gives it depth and richness, and the beans make it filling enough to be a meal on their own. It’s also wonderfully versatile — I can keep it vegetarian or add meat for extra flavor.
Ingredients
(Note: All ingredient amounts are listed in the recipe card below.)
2 tbsp / 30g butter, unsalted 1 onion, finely chopped (brown, yellow, or white) 2 garlic cloves, finely chopped 1 large carrot, peeled and finely chopped 1 1/2 tsp Italian herb mix (or a mix of oregano, thyme, parsley, and basil) 3/4 cup (170g) tomato paste 4 cups (1 litre) chicken or vegetable stock, low sodium 3 x 420g cans cannellini or other white beans, drained and rinsed (or 5 1/2 cups cooked beans) 1/2 cup (50g) parmesan, grated 1/2 tsp each salt and pepper 120g / 4oz baby spinach (or 5–6 cups leafy greens or 4 cups diced vegetables) 3/4 cup (185ml) cream (optional) or extra butter
Directions
I melt the butter in a large pot over medium-high heat. I add the garlic, onion, and carrot, cooking for about 5 minutes until the carrot softens and turns sweet.
After about 3 minutes, I stir in the Italian herbs and cook briefly to release their aroma.
I turn the heat up to high and add the tomato paste, cooking for 2 minutes to remove the raw flavor.
I pour in a small amount of the stock and let it cook for 3 minutes until the mixture reduces slightly, leaving behind a rich tomato base.
I add 1/2 cup of the beans, the remaining stock, parmesan, salt, and pepper. I stir well, cover the pot, and let it simmer for 3 minutes over low heat.
I use a stick blender to puree the soup until smooth (or transfer it to a blender).
I add the remaining beans and simmer for another 3 minutes. I stir in the spinach until it wilts, then add the cream if I’m using it. I taste and adjust the seasoning as needed.
I serve the soup hot with crusty bread for dipping.
Servings and Timing
This recipe makes 4 to 5 generous servings. It takes about 5 minutes to prepare and 20 minutes to cook, so it’s ready in roughly 25 minutes.
Variations
I sometimes add diced vegetables like zucchini, corn, or peas for more texture. For extra protein, I brown some bacon, sausage, or chicken first and add it back in at the end. To make it vegan, I use olive oil instead of butter and skip the parmesan or replace it with nutritional yeast.
Storage/Reheating
I store leftovers in the fridge for up to 4 days or freeze them for up to 3 months. When reheating, I thaw (if frozen) and warm it gently on the stove over low heat, adding a splash of stock or water if it thickens too much.
FAQs
Can I make this soup without cream?
Yes, I can simply leave it out or add a knob of butter for a silky texture.
Can I use dried beans instead of canned?
Absolutely. I soak 2 cups of dried beans overnight, then cook them until tender before using.
What kind of beans work best?
Cannellini beans are perfect, but navy, butter, or great northern beans all work well too.
How can I make the soup thicker?
I blend a little more of the beans and vegetables, or let it simmer uncovered for a few extra minutes.
Can I freeze this soup?
Yes, it freezes beautifully. I let it cool completely before portioning and freezing.
What can I use instead of cream?
I often add a splash of milk, coconut cream, or extra butter for a dairy-free or lighter option.
Can I make it spicy?
Definitely! I like to add a pinch of chili flakes or a little cayenne pepper.
What can I serve with this soup?
It’s perfect with garlic bread, crusty rolls, or a simple green salad.
Can I use canned tomatoes instead of tomato paste?
Yes, I can use 800g canned tomatoes and reduce the stock to 3 cups.
How do I keep it vegetarian?
I use vegetable stock and skip the parmesan or replace it with a plant-based alternative.
Conclusion
This creamy tomato bean soup is the kind of cozy meal I can make anytime — quick, nutritious, and packed with flavor. I love how the creamy base and tender beans make it hearty enough to enjoy on its own, yet light enough for any season. It’s an easy, wholesome recipe that always satisfies and warms me from the inside out.
This Creamy Tomato Bean Soup is a hearty, velvety soup made with white beans, tomato paste, and a touch of parmesan for richness. Naturally creamy without much dairy, it’s full of savory flavor and ready in under 30 minutes — the perfect comforting, wholesome meal for any day of the week.
Ingredients
2 tbsp (30 g) unsalted butter
1 onion, finely chopped (brown, yellow, or white)
2 garlic cloves, finely chopped
1 large carrot, peeled and finely chopped
1 1/2 tsp Italian herb mix (or oregano, thyme, parsley, and basil)
3/4 cup (170 g) tomato paste
4 cups (1 L) low-sodium chicken or vegetable stock
3 x 420 g cans cannellini or white beans, drained and rinsed (or 5 1/2 cups cooked beans)
1/2 cup (50 g) grated parmesan
1/2 tsp salt
1/2 tsp black pepper
120 g (4 oz) baby spinach (or 5–6 cups leafy greens or 4 cups diced vegetables)
3/4 cup (185 ml) cream (optional) or extra butter
Instructions
Melt butter in a large pot over medium-high heat. Add onion, garlic, and carrot, and cook for about 5 minutes until softened and fragrant.
Stir in Italian herbs and cook for another minute to release their aroma.
Increase heat to high, add tomato paste, and cook for 2 minutes to remove raw flavor.
Add a small amount of stock, simmer for 3 minutes to reduce slightly, then stir in 1/2 cup of the beans, remaining stock, parmesan, salt, and pepper.
Cover and simmer on low heat for 3 minutes. Blend the soup until smooth using a stick blender (or transfer to a blender in batches).
Add remaining beans and simmer for another 3 minutes. Stir in spinach until wilted, then add cream if using.
Taste and adjust seasoning, then serve hot with crusty bread.
Notes
Make it vegan by using olive oil instead of butter and omitting parmesan or replacing it with nutritional yeast.
Add cooked sausage, bacon, or chicken for a protein boost.
For more texture, include diced zucchini, corn, or peas.
Use canned tomatoes instead of tomato paste by substituting 800 g and reducing stock to 3 cups.
For a thicker soup, blend more of the beans and vegetables or simmer uncovered.