This Tuscan white bean soup leans into pantry-friendly beans, rosemary, and greens for a fast, nourishing pot with a lightly creamy (no-cream) broth, tender kale, and a savory finish from olive oil and Parmesan.
Warm the base. Set a heavy pot over medium heat and add the olive oil. When it shimmers, add onion, carrot, and celery with a pinch of salt. Cook, stirring often, until the vegetables soften and edges look glossy, 5–7 minutes (sweat, don’t deeply brown).
Build flavor. Stir in the garlic and red pepper flakes and cook just until the garlic smells sweet, about 30 seconds. Add the rosemary stems and bay leaves; toss to coat in the oil.
Add beans and broth. Pour in the broth and both cans of cannellini beans with their liquid. If using a Parmesan rind, add it now. Scrape the pot bottom to release any flavorful bits.
Simmer gently. Bring to a boil, then immediately reduce to a steady simmer. Cook uncovered for 10 minutes to let the flavors meld.
Thicken slightly. Use the back of a ladle to mash some of the beans against the pot sides, or pulse an immersion blender 2–3 times for a lightly creamy body while keeping plenty of whole beans intact.
Add the greens. Stir in the chopped kale and simmer until tender but still vibrant, 4–6 minutes.
Finish and balance. Remove the rosemary stems, bay leaves, and Parmesan rind. Stir in the lemon juice (if using) and 1 tablespoon chopped rosemary leaves. Taste and season with salt and several grinds of black pepper.
Serve. Ladle into warm bowls. Top with grated Parmesan, a thread of good olive oil, and a sprinkle of the remaining chopped rosemary. Add more red pepper flakes if desired.