Prep the base: Heat olive oil in a large pot over medium heat. Add onion, carrots, and celery with a pinch of salt.
Cook, stirring, until soft and lightly golden, about 8–10 minutes.
Build flavor: Stir in garlic and cook 1 minute until fragrant. Add tomato paste and cook 2–3 minutes, stirring, until it darkens slightly and coats the vegetables.
Deglaze: Pour in red wine (if using) and scrape up any browned bits. Let it reduce by about half, 1–2 minutes.
Add tomatoes and lentils: Stir in crushed tomatoes, lentils, oregano, bay leaf, and red pepper flakes if using.
Add 3 cups of broth. Bring to a simmer.
Simmer gently: Reduce heat to low, cover partially, and cook 25–35 minutes, stirring occasionally. Add more broth as needed to keep it saucy.
Lentils should be tender but not mushy.
Season and enrich: Remove the bay leaf. Stir in balsamic and soy sauce. Taste and season with salt and pepper.
If the sauce is too tangy, add a pinch of sugar or a knob of butter/olive oil.
Cook the pasta: Meanwhile, boil pasta in salted water until just shy of al dente. Reserve 1 cup of pasta water.
Marry pasta and sauce: Add drained pasta to the pot with the lentil Bolognese. Toss over low heat, adding splashes of pasta water to loosen and help the sauce cling.
Cook 1–2 minutes until glossy and well coated.
Finish and serve: Stir in chopped herbs. Serve with grated Parmesan or a vegan alternative, a drizzle of olive oil, and black pepper.