Sweat the aromatics: Warm 2 tablespoons olive oil in a large pot over medium heat.
Add onion, carrot, and celery with a pinch of salt. Cook 7–9 minutes, stirring occasionally, until softened and fragrant.
Add garlic and tomato paste: Stir in the garlic and cook 30 seconds. Add tomato paste and cook 1–2 minutes until it darkens slightly and smells sweet.
Build the base: Pour in crushed tomatoes.
Stir and let it bubble for 1 minute to cook off the raw acidity.
Add lentils and broth: Stir in lentils, broth, bay leaf, rosemary, thyme, and red pepper flakes if using. If you have a Parmesan rind, add it now.
Simmer gently: Bring to a boil, then reduce to a steady simmer. Cover partially and cook 25–35 minutes, stirring occasionally, until lentils are tender but not mushy.
Add a splash of water if it gets too thick.
Add the greens: Stir in chopped kale. Simmer 5–8 more minutes until wilted and tender. If using spinach, add for just 2–3 minutes at the end.
Finish and balance: Remove bay leaf and Parmesan rind.
Squeeze in about 1–2 teaspoons lemon juice. Taste and season with salt and black pepper. Adjust herbs if needed.
Optional texture boost: For a creamier body, use a ladle to mash some lentils against the pot side, or blend 1 cup of soup and stir it back in.
Serve: Ladle into bowls.
Drizzle with good olive oil, add a shower of grated Parmesan, and serve with warm crusty bread.