Cook the Pasta: Bring a large pot of salted water to a boil. Add the fettuccine and cook according to the package instructions until al dente. Drain and set aside, reserving a cup of pasta water.
Sauté Aromatics: In a large skillet, heat the olive oil over medium heat. Add the minced garlic and chopped onion, cooking until the onion becomes translucent (about 3-4 minutes).
Add Artichokes and Spinach: Stir in the chopped artichoke hearts and fresh spinach. Cook for an additional 2-3 minutes, or until the spinach has wilted.
Make the Creamy Sauce: Lower the heat and add the softened cream cheese and sour cream to the skillet. Stir well until smooth and creamy. If the mixture is too thick, add reserved pasta water a little at a time to reach your desired consistency.
Mix in Cheese and Seasonings: Add the grated Parmesan cheese, lemon juice, salt, pepper, and red pepper flakes (if using). Stir until the cheese has melted and combined with the sauce.
Combine With Pasta: Add the cooked pasta to the skillet, gently tossing until the pasta is well coated with the creamy sauce. Adjust seasoning if necessary.
Serve and Garnish: Serve the pasta immediately, garnished with fresh basil leaves and an extra sprinkle of Parmesan cheese if desired.