Heat oil in a soup pot over medium heat. Add the onion, celery, carrot, garlic, and thyme and cook until the onion has softened, about 5 minutes. Add the tomatoes, cook for 2 minutes. Add broth and beans and bring to boil. Reduce the heat and simmer 10 minutes.
Meanwhile, finely shred the spinach, then set it aside.
Working in batches, puree the soup in a blender until smooth, then return it to the pot. Bring to a gentle boil and add the spinach, salt, and pepper, adjusting the seasoning to taste. Cook, stirring, until the spinach is tender, wilted, and bright green, about 5 minutes.