Begin by cooking the pasta to al dente according to the package directions. Drain and reserve ½ cup of the pasta water.
In a large skillet on medium-high heat, add 1 tablespoon of olive oil. Cook the asparagus until slightly tender, but still firm. Remove from the pan and set aside.
Add the remaining olive oil to the pan and add in the onions and garlic until softened. Sprinkle in 2 teaspoons of flour. Mix to combine.
Add in the white wine, lemon juice, and lemon zest. Bring to a boil, then lower to a simmer and cook for 5 minutes. Add in the parmesan and salt and pepper to taste. Reduce heat to low, and stir in the heavy cream.
Turn off the heat and mix in the pasta, asparagus, parsley, and red pepper flakes (optional) until combined. Add in as much pasta water as needed to achieve desired consistency.
Serve immediately after garnishing with salt and pepper and parmesan cheese.
Notes
*Depending on the type of pasta you use, you may not need a whole pound. The pasta I used, cavatappi, is a really large noodle. I cooked a pound, but only ended up needing about three-fourths of it.