Sauté the aromatics: Heat 1 tablespoon olive oil in a large pot over medium heat. Add chopped onion and a pinch of salt.
Cook 5–7 minutes until soft and translucent. Stir in minced garlic and cook 30–60 seconds until fragrant.
Build the base: Add tomato paste. Cook, stirring, for 1–2 minutes to caramelize it slightly.
Sprinkle in dried basil, oregano, smoked paprika, and red pepper flakes (if using).
Add tomatoes and broth: Pour in crushed tomatoes and 3 cups broth. Stir well, scraping up any browned bits from the bottom of the pot.
Add the beans: Stir in the drained white beans. Bring to a gentle boil, then reduce to a simmer.
Cook 12–15 minutes to let flavors meld.
Blend until smooth: Use an immersion blender to puree the soup until silky. Or carefully transfer in batches to a countertop blender. Blend until smooth and return to the pot.
If it’s too thick, add a splash more broth.
Stir in the yogurt: Turn the heat to low. Whisk the Greek yogurt in a small bowl with a ladle of hot soup to temper it, then stir it back into the pot. This prevents curdling and keeps the texture creamy.
Finish and balance: Add 1–2 teaspoons balsamic or red wine vinegar.
Taste and adjust salt and pepper. If the tomatoes are very acidic, add a pinch of sugar; if they’re dull, add another splash of vinegar and a crack of pepper.
Serve: Ladle into bowls. Top with chopped fresh basil or parsley and a sprinkle of Parmesan if you like.
Add a drizzle of olive oil for a glossy finish.