Ingredients
3 tbsp olive oil, divided
1 1/2 cups diced yellow onion (about 1 large onion)
1 cup diced carrot
1 cup diced celery
4 tsp minced garlic (about 4 cloves)
1/4 cup tomato paste
1/2 tsp salt, plus more to taste
1/4 tsp black pepper
1/4 tsp dried thyme
1/4 tsp dried crushed rosemary
1/8 tsp red pepper flakes (optional)
3 (15.5 oz) cans cannellini beans, drained and rinsed
1 (32 oz) container vegetable broth
3 tbsp basil pesto (plus more for serving)
Fresh thyme (optional, for garnish)
Buttered bread, for serving (optional)
Instructions
- Heat 2 tbsp olive oil in a large pot over medium heat. Add onion, carrot, and celery; cook for 8–10 minutes until softened and golden.
- Add garlic and cook for 30 seconds until fragrant.
- Pour in remaining 1 tbsp olive oil, then add tomato paste. Season with salt and pepper and cook for 7–9 minutes, allowing the tomato paste to caramelize.
- Stir in thyme, rosemary, and red pepper flakes (if using).
- Add vegetable broth and beans, scraping up any browned bits from the pot. Bring to a boil, then reduce heat and simmer uncovered for 10–15 minutes.
- Remove about 2 cups of soup, blend until smooth, and return to the pot. Stir to combine for a creamy consistency.
- Stir in pesto and adjust seasoning with additional salt and pepper as needed.
- Ladle into bowls, drizzle with extra pesto, and garnish with fresh thyme. Serve with buttered bread if desired.
Notes
For extra greens, stir in chopped spinach or kale at the end.
Add smoked paprika or liquid smoke for a smoky flavor.
Use vegan pesto for a dairy-free version.
Blend more soup for a creamier texture or less for a chunkier one.
Store in the refrigerator for up to 5 days or freeze for up to 3 months.
- Prep Time: 20 minutes
- Cook Time: 35 minutes
- Category: Soup, Main Course
- Method: Stovetop
- Cuisine: Italian-Inspired
- Diet: Vegan
Nutrition
- Serving Size: 1 large bowl
- Calories: 310
- Sugar: 5g
- Sodium: 640mg
- Fat: 12g
- Saturated Fat: 2g
- Unsaturated Fat: 9g
- Trans Fat: 0g
- Carbohydrates: 38g
- Fiber: 10g
- Protein: 13g
- Cholesterol: 0mg