Pat shrimp completely dry with paper towels and season with salt and pepper on both sides.
Heat 2 tablespoons butter and 2 tablespoons olive oil in a large skillet over medium-high heat until the butter is melted and the pan is very hot.
Add shrimp in a single layer and cook for 2 minutes per side until pink and opaque, then remove to a plate.
Add remaining olive oil to the pan, then add asparagus and sauté for 4-5 minutes until tender-crisp and bright green.
Push asparagus to the sides of the pan, add remaining butter and minced garlic to the center, and cook for 1 minute until fragrant.
Pour in white wine and let it simmer for 2 minutes to reduce slightly, then stir in lemon juice, lemon zest, and red pepper flakes.
Return shrimp to the pan along with any accumulated juices, toss everything together, and cook for 1 minute to heat through.
Remove from heat, stir in fresh parsley and Parmesan cheese, and serve immediately over pasta or with crusty bread.