Heat olive oil in a large pot over medium heat. Add onion, carrot, celery, garlic, salt (I add 3/4 tsp), & pepper (I add 1/2 tsp). Cook, stirring occasionally, for 7–10 minutes, until softened and the onion smells sweet. Don’t rush this step; it builds the base flavor.
Stir in tomato paste, rinsed lentils, and all seasonings. Cook for 1 minute, stirring constantly.
Add diced tomatoes, bay leaves, and chicken broth. Stir to combine. Increase heat to bring to a simmer, then partially cover with a lid, leaving space for steam to escape. Cook for 25–30 minutes, or until the lentils are tender but still hold their shape.
Remove 2 cups of soup and transfer to a blender. Let it cool slightly, then hold the lid with a towel and blend until smooth. Pour back into the pot and stir.
Add lemon zest (I add 1 tsp) and juice (to taste; adding 2-4 tbsps), fresh parsley, and dill if using. Stir and taste, adjusting salt, pepper, or lemon as needed.
Ladle into bowls and top with Parmesan if desired. Serve with crusty buttered bread, if desired.
Notes
Note 1: Use green or brown lentils so they hold their shape. Rinse in a fine mesh sieve before adding to remove any debris. Fresh lentils are best since older ones can stay tough and not cook evenly.Storage: Cool soup completely, then store in airtight containers in the fridge for up to 5 days. To freeze, place in freezer-safe bags or containers for up to 3 months. Thaw overnight and reheat on the stove, adding a little broth if needed.