Cook the pasta according to package directions. Reserve about one cup of the pasta water before draining.
Meanwhile, in a skillet over medium heat, cook the sliced onions in olive oil until they are translucent and slightly browned, about 3-4 minutes. Set the onions aside.
Add more olive oil to the same skillet, and cook the sliced mushrooms and tomatoes for approximately 2-3 minutes. Set mushrooms and tomatoes aside.
In the same skillet, cook the garlic for approximately 30 seconds.
Add the vegetable broth to the skillet with the garlic. Deglaze the pan with the broth.
Add the Italian seasoning, shredded parmesan cheese, heavy whipping cream, and red pepper flakes to the skillet. Cook for an additional two minutes.
Over low heat, add the spinach to the skillet and stir until it is wilted into the sauce.
Add the cooked farfalle (bowtie) pasta and stir to combine. If the pasta is too dry, add small amounts of pasta water until the desired consistency is achieved.
Top with additional parmesan cheese if desired.