Cook pasta in a large pot of salted boiling water, according to package instructions. Drain.
Meanwhile, in a large skillet, heat olive oil over medium heat. Add onion and garlic, sauté until tender (about 5 minutes).
Add diced tomatoes, oregano, basil, red pepper flakes, salt and pepper to the skillet. Stir in tomato paste and ½ cup of water until completely combined.
Reduce heat to low, stir in the cream cheese. Continue stirring over low heat until cream cheese smoothly melts into the sauce. Gradually add the Parmesan cheese, stirring until completely combined.
Stir in fresh spinach and continue to cook over low heat, just until the spinach wilts (about 1 more minute). Add cooked pasta, toss to coat in the sauce, and season with additional salt and pepper, if necessary. Stir in half-and-half to thin sauce until it reaches desired consistency.
Garnish with chopped fresh parsley and additional Parmesan cheese, if desired.