Sauté the aromatics. Warm 1 tablespoon olive oil in a large pot over medium heat. Add onion and carrot with a pinch of salt. Cook 6–8 minutes until soft and lightly golden.
Stir in garlic for 30 seconds.
Toast the tomato paste. Add tomato paste and cook 1–2 minutes, stirring, until it darkens slightly. This step deepens the tomato flavor.
Add tomatoes and broth. Pour in canned tomatoes and broth. Stir in oregano and a pinch of red pepper flakes if using.
Bring to a gentle boil, then reduce to a simmer.
Simmer for flavor. Add the white beans. Simmer uncovered for 15–20 minutes, stirring occasionally. The soup should thicken slightly and smell rich.
Blend until silky. Use an immersion blender to puree until smooth.
Or carefully transfer to a blender in batches, venting the lid. Blend until velvety.
Stir in the creaminess. Off the heat, whisk in Greek yogurt and Parmesan (if using) until fully incorporated. Add 1 teaspoon balsamic vinegar, taste, and add the second teaspoon if you want more brightness.
Season to finish. Taste and adjust with salt and black pepper.
If it’s too thick, splash in a bit more broth. If it’s tangy, add a pinch of sugar to balance.
Serve and garnish. Ladle into bowls. Top with torn basil, extra Parmesan, or a swirl of yogurt.
Crack some fresh black pepper over the top for a little bite.