Heat the olive oil in a large pot over medium heat. Add the onions, garlic, carrots and celery. Cook, stirring frequently for about 4-5 minutes.
Now add the drained and rinsed cannellini beans, vegetable broth, tomato paste, Italian seasoning, red chili flakes, black pepper and salt. Stir well.
Bring to a boil, then lower heat and simmer for 15 minutes, uncovered.
Transfer about 2 cups of the soup to a blender and blend until smooth. Transfer the blended soup back to the pot. Alternatively, use an immersion blender and blend a few times to create a creamier texture.
Stir well. If the soup is too thick, add a bit more broth until it reaches your desired consistency.
Stir in the chopped kale or spinach and let simmer for a few minutes until wilted (kale will take a few extra minutes to soften).
Stir in the lemon juice. Taste and add more salt, pepper or red chili flakes as desired.
Serve warm, perhaps with a side of crusty bread and a sprinkle of parmesan in each bowl. Enjoy!