Cook penne pasta in very salty water until al dente. Reserve ½ cup pasta water, then drain and return pasta to the pot.
Add butter to the pot and melt over medium heat.
Add garlic and sauté until fragrant, about 2 minutes.
Whisk flour into the butter and cook for 1 minute until lightly golden.
Add milk gradually, whisking constantly to prevent lumps.
Cook the sauce, whisking occasionally, until thickened, about 6 minutes.
Stir in shredded chicken, spinach, and cream cheese until melted and combined.
Turn off heat and stir in parmesan cheese until smooth.
Add pasta back into the sauce and toss to combine.
Stir in reserved pasta water a few tablespoons at a time until creamy.
Season with salt and pepper to taste.
Garnish with extra parmesan and cracked black pepper if desired. Serve immediately.