Heat olive oil in a large pot over medium heat.
Add onion, carrots, and celery. Sauté for 5–6 minutes until softened.
Stir in garlic, cumin, smoked paprika, and thyme. Cook for 1 minute, until fragrant.
Add lentils, diced tomatoes, vegetable broth, bay leaf, salt, and pepper. Stir to combine.
Bring soup to a boil, then reduce heat to low and simmer uncovered for 30–35 minutes, or until lentils are tender.
Stir in spinach and cook for 2–3 minutes until wilted.
Remove bay leaf. Add lemon juice, taste, and adjust seasoning if needed.
Serve warm with bread or a side salad.