Heat olive oil in a large skillet over medium heat. Add the diced onion and cook for 4–5 minutes, stirring occasionally, until softened. Add the garlic, tomato paste, Italian seasoning, and red pepper flakes. Cook for another 1–2 minutes, stirring frequently, until fragrant and the tomato paste has darkened slightly.
Add the halved cherry tomatoes and cook for 4–5 minutes, stirring occasionally, until they begin to soften and release their juices.
Stir in the drained cannellini beans and vegetable broth. Bring to a gentle simmer and cook for 5–7 minutes, allowing the flavors to combine.
Using the back of a spoon or spatula, mash about ½ cup of the beans against the side of the skillet. Stir the mashed beans back into the sauce to create a thicker, creamy consistency.
Reduce the heat to low and stir in the Parmesan cheese and Greek yogurt until combined.
Stir in the baby spinach and cook for 1–2 minutes, until just wilted. Season with salt and black pepper to taste.
Serve. Remove from heat and garnish with fresh basil, additional Parmesan, and red pepper flakes if desired. Serve warm with toasted crusty bread for dipping.
