Prep your base. Warm 2 tablespoons of olive oil in a large pot over medium heat.
Add the onion, carrots, and celery with a pinch of salt. Cook 6–8 minutes, stirring often, until soft and lightly golden.
Bloom the aromatics. Stir in the garlic and tomato paste. Cook for 1–2 minutes until the paste darkens slightly and smells sweet.
This step builds deep flavor.
Add tomatoes and seasoning. Pour in the crushed tomatoes. Add oregano, thyme, bay leaf, and red pepper flakes if using. Stir to combine.
Add lentils and broth. Rinse the lentils and add them to the pot.
Pour in 3 cups of vegetable broth to start. Bring to a simmer.
Simmer until tender. Reduce heat to low and cook uncovered for 25–35 minutes, stirring occasionally. Add more broth as needed to keep a thick, saucy consistency.
The lentils should be tender but not mushy.
Layer in umami and richness. Stir in soy sauce or balsamic for depth. Add milk or a splash of cream if you like a silkier finish. Simmer 3–5 more minutes.
Taste and adjust salt and pepper.
Cook the pasta (or your base). While the sauce simmers, cook pasta in salted water until al dente. Reserve 1/2 cup of pasta water.
Finish and bring it together. Remove the bay leaf. Add chopped herbs.
Toss with pasta, loosening with a splash of pasta water if needed. Alternatively, spoon the sauce over polenta or serve with crusty bread.
Serve. Top with grated Parmesan or a dairy-free alternative, extra herbs, and a drizzle of olive oil. Crack fresh pepper on top for a final touch.