Prep the base. Finely chop onion, carrots, celery, and mushrooms.
Rinse the lentils. This helps everything cook evenly and blend into a cohesive sauce.
Sweat the aromatics. Warm olive oil in a large pot over medium heat. Add onion, carrots, and celery with a pinch of salt.
Cook 7–8 minutes, stirring, until soft and lightly golden.
Add mushrooms and garlic. Stir in mushrooms and cook until they release their moisture and start to brown, about 6–8 minutes. Add garlic and cook 1 minute until fragrant.
Boost umami with tomato paste. Add tomato paste and cook for 2 minutes, stirring, to caramelize it slightly. This deepens the flavor.
Deglaze. Pour in red wine (if using), scraping up browned bits.
Let it reduce by half, 2–3 minutes.
Build the sauce. Add crushed tomatoes, lentils, 2 cups broth, soy sauce, oregano, thyme, bay leaf, and a pinch of red pepper flakes if you like heat. Stir well.
Simmer gently. Bring to a low simmer, then reduce heat to medium-low. Cook uncovered 25–40 minutes, stirring occasionally.
Add more broth as needed to keep it saucy. Red lentils take about 25 minutes; brown/green may take 35–40.
Finish with milk. Stir in the milk to mellow the acidity and give the sauce a glossy finish. Simmer 3–5 more minutes.
Season with salt and pepper to taste.
Serve. Toss with your favorite pasta (rigatoni, tagliatelle, or spaghetti), spoon over creamy polenta, or use as a lasagna filling. Top with fresh herbs and Parmesan if desired.