Heat olive oil in a saucepan over medium-high heat. Stir in flour until a light paste forms, 1 to 2 minutes. Add garlic; cook and stir until fragrant, about 1 minute. Stir in parsley.
Whisk milk slowly into the saucepan. Bring sauce to a simmer; cook until slightly thickened, about 5 minutes. Reduce heat and whisk in cream cheese, Parmesan cheese, and half-and-half until smooth. Season with salt and black pepper.