Cook pasta according to directions on the box.
In a large frying pan, heat olive oil.
Add garlic and cook until fragrant.
Stir in spinach and continue to cook until wilted; about 2 minutes.
Place cooked spinach in a large bowl and set aside.
In the same pan, melt 1 tablespoon butter.
Add artichokes and cook for 2 minutes.
Place artichokes in the bowl with spinach and set aside.
Melt 1 tablespoon butter over low heat.
Whisk in flour.
Whisk in milk, salt and pepper; cook 5 minutes.
Add cheese and whisk until completely melted.
Slowly add cooked pasta, spinach and artichokes; mix until thoroughly combined.
Remove from heat.
Garnish with grated parmesan and red pepper flakes.
Serve warm.