In a large deep skillet or Dutch oven, heat the olive oil over medium heat. Add the chopped onion and cook until softened, about 3 minutes. Stir in the minced garlic and optional red pepper flakes, cooking for 30 seconds until fragrant.
Pour in the crushed tomatoes, vegetable broth, salt, and black pepper. Stir well, then add the dry linguine. Use a spoon to gently press the pasta under the liquid as it softens. Bring to a boil, then reduce heat to a simmer and cook uncovered, stirring frequently, for about 9-10 minutes or until the pasta is al dente.
Remove the skillet from heat. Slowly stir in the heavy cream and grated parmesan cheese until fully incorporated and the sauce is smooth. The residual heat will thicken the sauce slightly. Fold in most of the fresh basil, reserving some for garnish.
Taste and adjust seasoning with additional salt and pepper if needed. Transfer to a serving bowl or plate directly from the skillet. Garnish with the reserved basil and extra parmesan shavings. Serve immediately.