Bring a large pot of generously salted water to a boil. Cook the penne according to the package directions until al dente, reserving about ½ cup of pasta water before draining.
While the pasta cooks, heat the olive oil in a large skillet or saucepan over medium heat. Add the onion and sauté for 3–4 minutes, until softened and translucent.
Stir in the garlic, red pepper flakes, and Italian seasoning. Cook for about 30 seconds, stirring constantly so the garlic doesn't burn.
Add the tomato paste and cook for another minute, stirring it into the aromatics. This quick step helps deepen the tomato flavor.
Add the sliced mushrooms and cook for 4–5 minutes, stirring occasionally, until they soften and begin to release their moisture.
Pour in the crushed tomatoes and stir well. Bring the sauce to a gentle simmer, then reduce the heat and cook for about 10 minutes, stirring occasionally.
Add the broccoli and continue simmering for another 4–5 minutes, until the broccoli is tender but still has a little bite.
Season the sauce with salt and black pepper. Stir in the fresh basil just before adding the pasta to keep its flavor bright.
Add the drained penne to the skillet and toss until every piece is coated in the spicy tomato sauce. If the sauce seems too thick, add a splash of reserved pasta water until it reaches a smooth, glossy consistency.
Taste and adjust the seasoning or red pepper flakes as desired. Serve immediately with fresh basil and vegan Parmesan, if using.