Preheat the oven to 400 degrees F (200 degrees C). Line a baking sheet with parchment paper.
Place asparagus on the baking sheet and season with salt and black pepper. Drizzle with olive oil and lightly toss to coat evenly.
Roast in the preheated oven until asparagus is tender-crisp, about 10 minutes for thin asparagus, or 14 minutes for large asparagus.
Meanwhile, melt butter in a saucepan over medium heat. Add garlic and stir for 1 to 2 minutes until softened, taking care not to burn garlic. Sprinkle flour onto butter and cook, whisking constantly until mixture is golden and thick, 1 to 2 minutes. Slowly whisk in milk and bring to a light boil until sauce starts to thicken, 2 to 3 minutes.
Sprinkle in Parmesan cheese and continue whisking until smooth. Season with salt and pepper. Remove from heat - sauce will further thicken.
Place asparagus on a serving platter and drizzle with cheese sauce. Garnish with lemon zest and serve immediately.